赞
踩
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信息,处理它之后,就把广播终止,防止其他应用收到。
总体来说:对于接收同一个广播,在相同优先级的情况下,动态注册优先级别高于静态注册。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。