广播的优先级和处理方法

来源:互联网 发布:linux yum安装rpm包 编辑:程序博客网 时间:2024/04/29 10:08

1.无序广播发送方发出后几乎同时到达多个广播接收者处并且无法终止广播继续传播使用Context.sendBroadcast(intent);

2.有序广播广播接收者需要提前设置优先级优先级高的先接收到广播而且能终止广播(abortBroadcast())使用Context.sendOrderedBroadcast(intent);有序广播可以设定接收的优先级并在接收后删掉这个广播传送XML中设定receiver的优先级

<receiverandroid:name=".smsReceiver">

<intent-filterandroid:priority="1000">

<actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/>

</intent-filter>

</receiver>

优先级别声明在intent-filter元素的android:priority属性中数越大优先级别越高最大值

2147483647优先级别也可以调用IntentFilter对象的setPriority()进行设置

有序广播的接收者可以终止广播Intent的传播广播Intent的传播一旦终止后面的接收者就无法接收到广播使用abortBroadcast();即可这种用法可以用在短信拦截或者位置跟踪应用中比如收到某个特定SMS信息处理它之后就把广播终止防止其他应用收到

总体来说对于接收同一个广播在相同优先级的情况下动态注册优先级别高于静态注册
0 0
原创粉丝点击