Android学习之广播接收者

广播接收者概念

1.广播接收者概念(BroadCastReceiver)为什么需要广播接收者?
BroadCastReceiver可以接受SendBraodCast方法发出来的广播,可以使用Intent传递数据,是一个抽象类。
广播的特点 数据传递的方向是 单向的,需要调到固定的频率。
作用范围有限,只有在当前手机里有效。
系统将一些重要的操作 通过广播的形式通知给所有应用。

广播接收者编码流程-静态注册

1.创建Java类继承BroadCaseReceiver
2.重写 onReceiver方法
3.清单文件注册receiver
4.某些广播需要授权 添加相对应的uses-permission

广播接收者编码流程-静态注册

1.创建Java类继承BroadCaseReceiver
2.重写 onReceiver方法
3.创建BroadCaseReceiver 广播接收者对象,并且创建IntentFilter意图过滤器对象添加需要监听的action进行匹配广播,然后调用registerBroadCastReceiver(BroadCaseReceiver,IntentFilter)方法注册广播接收者.
4.在当前Activity结束时需要注销动态注册的广播接收者,重新onDestory方法,并在方法中调用unRegisterBroadCast(BroadCaseReceiver)注销广播接收者。

发送无序广播

在程序中,创建intent对象并且通过调用sendBroadCase来发送广播。

接收无序广播

1.创建java类并且继承 BoadCaseReceiver 并且实现 onReceiver方法
2.在程序清单application元素中注册receiver,其中需要有intent-filter元素来过滤事件,intent-filter中要有需要匹配的action,为action的name属性。因为发送广播或者其他intent意图时,都需要有对应的action(显示意图除外)的name属性做匹配。
当事件被触发后,会经过intent-filter 来过滤 是否有与之匹配的action name.
3.当被匹配到后会调用其中的onReceiver方法。

发送有序广播

在程序中,创建intent对象并且通过调用sendOrderedBroadCase来发送有序广播。

接收无序广播

1.创建java类并且继承 BoadCaseReceiver 并且实现 onReceiver方法
2.在程序清单application元素中注册receiver,其中需要有intent-filter元素来过滤事件,intent-filter中要有需要匹配的action,为action的name属性。因为发送广播或者其他intent意图时,都需要有对应的action(显示意图除外)的name属性做匹配。
当事件被触发后,会经过intent-filter 来过滤 是否有与之匹配的action name.
3.需要在配置 intent-filter 的属性 priority(整数数值越大越优先)来表明顺序
4.当被匹配到后会调用其中的onReceiver方法。
5.可以调用abortBroadCast();方法来结束广播。

如何区分有序广播和无序广播

在接收广播后onReceiver方法中调用abortBroadCast方法结束广播,如果抛出异常则为无序广播,反之亦然。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值