您的位置:首页 > 移动开发 > Android开发

Android 开发中广播Broadcast 知识点

2016-04-20 13:57 357 查看
对于学习Android的小伙伴,应该都知道广播(Broadcast)是Android四大组件之一。

兼容性有问题:在酷派大神F2 型号:Coolpad 8675-FHD (有序广播完全失效)

广播类型有两种:

1、普通广播(Normal broadcast) 2、有序广播(Ordered broadcast)

它们之间优缺点:

1.1、普通广播(发送:Context.sendBroadcast())

优点:效率比较高,原因是它完全异步,执行的顺序是没有规则性的,在同一时刻(逻辑上)所有广播接收者接收到broadcast顺序是不确定的,这种方式在同一时刻消息传递的效率比较高

缺点:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播

2.1、有序广播(发送:Context.sendOrderedBroadcast())

优点:因为它是有序的,可以按照接收者的声明的优先级别进行有序传播

通过getResult系列方法来得到上个广播返回的结果

通过abort系列方法让系统终止该广播,使该广播不再继续传递到别的广播接收者(BroadcastReceiver)

有序广播使用过程:可以通过在intent-filter中设置android:priority属性来设置receiver的优先级(取值:-1000到1000),优先级相同的receiver其执行顺序不确定。如果BroadcastReceiver在代码中(通过调用IntentFilter对象的setPriority()进行设置)注册的话,且其intent-filter拥有相同android:priority属性的话,先注册的将先收到广播。有序广播,即从优先级别最高的广播接收器开始接收,接收完了如果没有丢弃,就下传给下一个次高优先级别的广播接收器进行处理,依次类推,直到最后。如果多个应用程序设置的优先级别相同,则谁先注册的广播,谁就可以优先接收到广播。

比如接收短信的广播是有序广播,因此可以设置你自己的广播接收器的级别高于系统原来的级别,就可以拦截短信,并且不存收件箱,也不会有来信提示音。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: