@Android里的广播机制
/广播的类型/
广播有两种类型:有序广播(ordered broadcasts)和普通广播(normal broadcasts)
/两者优缺点的比较/
普通广播效率较高 可被所有广播接收者接受 但是不能处理广播并传递给下一个接收者
有序广播根据接收者声明的优先级别(声明在intent-filter元素的android:priority属性中,数越大优先级别越高,取值范围:-1000到1000。也可以调用IntentFilter对象的setPriority()进行设置)
前者接受数据后可以进行处理并传递给下一个接收者
/两者发送和接收机制的比较/
context.sendBroadcast: 发送普通的广播 所有接收者有机会接收
Context.sendOrderedBroadcast() 发送的是有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者,前面的接收者有权终止广播(BroadcastReceiver.abortBroadcast()),如果广播被前面的接收者终止,后面的接收者就再也无法获取到广播。对于有序广播,前面的接收者可以将处理结果存放进广播Intent,然后传给下一个接收者。
/广播依托的intent/
广播接收者(BroadcastReceiver)用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收