Android 本地广播 ,全局广播,标准广播,无序广播

sancaiodm Android应用 2021-08-27 1346 0

    

     在Android 8.0系统之后,所有隐式广播都不允许再使用静态注册的方式来接收了。

     隐式广播指的是那些没有具体指定发送给哪个应用程序的广播,大多数系统广播属于隐式广播,但是少数特殊的系统广播目前仍然允许使用静态注册的方式来接收。这些特殊的系统广播列表详见https://developer.android.google.cn/guide/components/broadcast-exceptions.html。



Android中的广播主要可以分为两种类型:标准广播和有序广播。

     标准广播(normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的BroadcastReceiver几乎会在同一时刻收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截断的。


      有序广播(ordered broadcasts)则是一种同步执行的广播,在广播发出之后,同一时刻只会有一个BroadcastReceiver能够收到这条广播消息,当这个BroadcastReceiver中的逻辑执行完毕后,广播才会继续传递。所以此时的BroadcastReceiver是有先后顺序的,优先级高的BroadcastReceiver就可以先收到广播消息,并且前面的BroadcastReceiver还可以截断正在传递的广播,这样后面的BroadcastReceiver就无法收到广播消息了

转载声明 上文内容出自:郭霖书籍《第一行代码》,


注册时候调用的是LocalBroadcastManager的registerReceiver方法即为本地广播

而启用context的registerReceiver方法注册广播也是全局广播,

其两者参数就是相同的



评论