Android初级基础知识复习(十四) —— 广播Broadcast基础

发送/接收临时广播

页面与页面之间传递和传回消息可使用Intent。页面向适配器传递消息可使用适配器的构造函数;适配 器向页面传回消息有点麻烦。碎片如何把消息传回页面呢?这个问 题看起来很高深,其实至少有两种解决办法。

(1)Fragment提供了onAttach方法,onAttach方法指定了结合的 Activity对象。同样定义一个回调接口,把Activity对象强制转换为回调接口就可以在碎片中调用页面方法。这种方式不是本节的重点,有兴趣的读者可以自行钻研。
(2)人人都想成为武林高手,捷径之一就是寻找武功秘笈。同样是武术教材,清风剑法练十年还不如九阴真经练一年。Android隐藏着不少武林大法,每当你按照常规思路难以解决问题时,往往用一个大法就可 以迎刃而解。“5.2 列表类视图”在处理ListView与GridView的分隔线时 便用到了padding大法。**现在适配器向页面传回消息有一个Broadcast大法,**无论对方在何处,只要用Broadcast大法吼一吼,对方立刻能够听到,岂不妙哉。

广播(Broadcast)用于Android组件之间的灵活通信,与Activity的区别在于:
(1)Activity只能一对一通信;Broadcast可以一对多,一人发送广 播,多人接收处理。
(2)对于发送者来说,广播不需要考虑接收者有没有在工作,接收者在工作就接收广播,不在工作就丢弃广播。
(3)对于接收者来说,会收到各式各样的广播,所以接收者要自行过滤符合条件的广播,才能进行解包处理。

与广播有关的方法主要有以下3个。

  1. sendBroadcast:发送广播。
  2. registerReceiver:注册接收器,一般在onStart或onResume方法中注册。
  3. unregisterReceiver:注销接收器,一般在onStop或onPause方法中注销。

如果广播是在应用内使用,不需要跨进程,建议使用LocalBroadcastManager下的registerReceiver与 unregisterReceiver方法,因为这样不但更有效率(不需要跨进程通信),而且不用考虑广播开放造成的安全 问题(如果其他应用也能收到广播)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值