Activity Broadcast

Activity Broadcast

广播是用于应用程序之间传输信息的一种机制。使用广播,需要先定义广播接收器,然后发送广播。如果已经注册的广播接收器IntentFilter与发送的Intent相匹配,就会通过onReceive()来接收这条信息;


1.BroadcastReceiver

广播接收器使用有两种方式:

第一种,通过在AndroidManifest.xml使用<receiver>标签进行注册,使用<intent-filter>标签设置过滤器。这种方式注册的广播,系统会进行管理,自己进行注册和销毁。

第二种,在代码中进行定义,一般在onStart()中进行注册,使用Context.registerReceiver()方法,一般在onStop中销毁,销毁时使用Context.unregisterReceiver()方法。如果使用该方式注册,Context被销毁时,BroadcastReceiver也会自动取消注册。

2.Broadcast

如果在发送广播时指定了接收权限,那么需要在AndroidManifest中使用<uses-permission>来声明该权限的Activity才能接收该广播。反过来说,如果你在广播接收器中定义了可接收的广播的权限,那么你同样需要在AndroidManifest中使用<uses-permission>来声明该权限,这样拥有该权限的Activity才能发送可被拥有该权限广播接收器的广播。

发送广播有如下三种方式:

sendBroadcast() 通过这种方式发送的广播,如果接收的Activity不处于OnResume状态则无法收到,后面在恢复到onResume也不行。

sendOrderBroadcast() 这种方式发送的广播被称为有序广播,接收的顺序是按照定义的优先级高低来控制的,优先级越高,越先接收。优先级可以通过在xml设置android:priority也可以在代码中通过setPriority()来设置。

取值范围为-1000到1000。之前的广播接收者可以把它处理的结果通过Intent传递给下一个接收者,也可以终止该广播,则后面的广播接收者无法接收该广播。

sendStickyBroadcast() 与sendBroadcast()不同在于,恢复到onResume状态后,可以重新接收到之前不在该状态的广播。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值