一、分类
BroadcastReceiver是一种全局监听器,用来实现系统中不同组件之间的通信。 有时候也会用来作为传输少量而且发送频率低的数据,但是如果数据的发送频率比较高或者数量比较大就不建议用广播接收者来接收了,因为这样的效率很不好,因为BroadcastReceiver接收数据的开销还是比较大的。
-
标准广播(无序广播/异步)
①是一种完全异步执行的广播,在广播发出后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序。
②无序广播不可以被拦截,若被拦截,则会报错。
③无序广播的广播接收者之间不能相互传递数据。
④该广播是调用sendBroadcast()方法来发送广播的。 -
有序广播(同步)
①是一种同步执行的广播,在广播发出后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。
②优先级高的接收器可截断广播。
③在相同优先级下,广播接收者接收的顺序要看接收者在清单文件中声明的顺序,先声明的接收者比后声明的接收者要先接收到广播。
④有序广播的广播接收者之间可以互相传递数据。
⑤该广播是调用sendOrderedBroadcast()方法来发送广播的,同时也可以调用abortBroadcast()方法来拦截该广播。 -
粘性广播
①调用sendStickyBroadcast()方法来发送该类型的广播信息。
②这种的广播的最大特点是,当粘性广播发送后,最后的一个粘性广播会滞留在操作系统中。如果在粘性广播发送后的一段时间里,如果有新的符合广播的动态注册的广播接收者注册,将会收到这个广播消息,虽然这个广播是在广播接收者注册之前发送的。
③对于静态注册的广播接收者来说,这个等同于标准广播。</