有多個(gè)BroadcastReceiver的時(shí)候設(shè)置優(yōu)先級(jí)寻馏,可以在manifest文件中設(shè)置優(yōu)先級(jí),優(yōu)先級(jí)越高踩寇,數(shù)字越大:
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="9">
<action android:name="com.chenshipeng.learnbroadcastreceiver.intent.action.MyReceiver" />
</intent-filter>
</receiver>
<receiver
android:name=".MyReceiver1"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="8">
<action android:name="com.chenshipeng.learnbroadcastreceiver.intent.action.MyReceiver" />
</intent-filter>
</receiver>
在高優(yōu)先級(jí)的BroadcastReceiver中可以中斷后續(xù)的broadcastReceiver:
public class MyReceiver extends BroadcastReceiver {
public static final String ACTION = "com.chenshipeng.learnbroadcastreceiver.intent.action.MyReceiver";
@Override
public void onReceive(Context context, Intent intent) {
// System.out.println("接收到了消息,消息的內(nèi)容是:"+intent.getStringExtra("data"));
System.out.println("MyReceiver接收到了消息");
abortBroadcast();
}
}
當(dāng)然這只有當(dāng)發(fā)送消息的時(shí)候使用的是:
sendOrderedBroadcast(i,null);
而不是
sendBroadcast(i);的時(shí)候。