Android 广播

广播(Broadcast)

系统发送系统广播,应用程序发送自定义广播
无论是系统广播还是自定义广播,都有两种类型:标准广播和有序广播。

(1)无序广播(Normalbroadcast):标准广播通过调用sendBroadcast()方法发送,该广播是异步执行发送的,手机中不同应用程序中的广播接收器可以同时接收到标准广播。
(2)有序广播(Orderedbroadcast):有序广播通过调用sendOrderedBroadcast()方法发送,该广播是同步发送的,应用程序中优先级高的广播接收器先接收到该广播,然后再由该广播接收器将广播传给优先级低的广播接收器,并且优先级高的广播接收器可以通过调用abortBroadcast()方法阻断广播的传送,这样低优先级的广播接收器就无法收到该广播。超时60秒未处理,将广播移交给下一个接收器

广播接收器(BroadcastReceiver)

应用注册广播接收器来接收各种广播

(1)动态注册:动态注册的广播接收器需要在代码中调用registerReceiver()方法来注册广播接收器,该方法接收两个参数,一个是广播接收器类的实例,另一个是intentFilter实例,intentFilter实例用于指定想要监听的广播。动态注册的广播接收器生命周期 与Activity有关 ,当广播接收器所在的活动被注销时,该广播就无法使用了,所以需要在活动结束前调用unregisterReceiver()方法取消注册,一般将该方法放在onPause()或者onDestroy()方法内。

(2)静态注册:静态注册的广播接收器需要在AndroidManiFest.xml文件中配置intentFilter,并且无需调用registerReceiver()方法即可注册。
静态注册的广播接收器是常驻型,即使退出应用程序,仍然能够接收到相应的广播。

广播接收器的优先级

无序广播:

优先级:
动态注册 > 静态注册
同样方式,先注册 > 后注册

有序广播

优先级:
1.无论静态和动态接收器,优先级高的先接收。
2.当优先级相同时,动态注册 > 静态注册。
3.当优先级和注册方式都相同时,先注册的接收器先接收。

参考-https://blog.csdn.net/yuncaidaishu/article/details/88575072

posted @ 2021-07-14 11:09  MOSSLIFE  阅读(262)  评论(0)    收藏  举报