广播类型
普通广播,通过Context.sendBroadcast(Intent myIntent)发送的
- 所有监听该广播接受者都可以监听到该广播
- 同级别接收先后顺序是随机的(无序)
- 级别低的后收到广播
- 接收器不能截断广播的继续传播,也不能处理广播
- 同级别动态注册高于静态注册
有序广播,通过Context.sendOrderedBroadcast(intent, receiverPermission)发送的
- 按照接收者的优先顺序来接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大优先级越高,可以终止广播的继续传播,接受者可以修改intent的内容。
- 同级别接收顺序是随机的
- 级别低的后收到
- 能截断广播的继续传播,高级别的广播接收器接收广播后能决定是否截断。
- 能处理广播
- 同级别动态注册高于静态注册
异步广播 (粘滞性滞留广播),通过Context.sendStickyBroadcast(Intent myIntent)发送的,
还有sendStickyOrderedBroadcast(intent, resultReceiver, scheduler, initialCode, initialData, initialExtras)方法
ps:已被弃用
- 不能处理结果给下一个接收者,无法终止广播。
- 一直存在
- 可以先发送广播,再注册接收器
- 需要添加android.permission.BROADCAST_STICKY权限
- 收并处理完Intent后,广播依然存在,直到你调用removeStickyBroadcast(intent)主动把它去掉
发送广播:
//在清单文件中配置广播优先级
<receiver android:name="MyReceiver1" >
<intent-filter android:priority=