标准广播:一种完全异步执行的广播,在广播发出去之后,所有的接收器几乎都会在同一时刻接受到这条广播消息,因此它们之间没有任何顺序可言。优点:效率高。缺点:无法截断。
有序广播:一种同步执行的广播,在广播发出之后,同一时刻只有会有一个广播接收器能够接受到这条消息广播,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。优点,可以截断。缺点:效率低。
标准广播的使用:
//直接创建Intent实例,在实例中添加action,然后发送广播即可
//xxxx代表需要添加的action
Intent intent = new Intent("xxxx");
sendBroadcast(intent);
有序广播的使用:
//直接创建Intent实例,在实例中添加action,然后发送广播即可
//xxxx代表需要添加的action
Intent intent = new Intent("xxxx");
sendOrderedBroadcast(intent);
那么如何截断有序广播呢?只需要在处理广播的onReveive函数中加入abortBroadcast()方法即可
既然有顺序,那么一定有优先级,那么如何设定广播接收器的先后顺序呢?只需要将AndroidManifest.xml注册的广播接收器的<intent-fliter>标签中添加android:priority属性,如下<intent-fliter android:priority = "100">,就完