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

浙公网安备 33010602011771号