BroadcastReceiver(三)广播消息的优先级与中断

广播消息的优先级

若多个receiver 的action相同,则优先级值大的先收到消息,并且可以中止消息的继续发送。

在AndroidManifest.xml中代码如下:

	
            android:priority="3">
                com.example.kfk.lbroadcastreceiver.intent.action.LReceiver" />
            
        
        
            android:priority="10">
                com.example.kfk.lbroadcastreceiver.intent.action.LReceiver" />
            
        


广播消息的中断

以sendOrderedBroadcast 发送的消息可以在先收到消息的接收器的调用abortBroadcast中断。

发送代码
	Intent i2 = new Intent(LReceiver.ACTION);//隐式启动
        i2.putExtra("msg","回家睡觉!");
//      sendBroadcast(i2);//不能被中断
        sendOrderedBroadcast(i2,null);//第二个参数是权限字符串,以 sendOrderedBroadcast发送的消息可被先收到的接收器继续中断

中断代码
发public class RReceiver extends BroadcastReceiver {
    public RReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("接收器R 收到了消息:"+intent.getStringExtra("msg"));
        System.out.println("接收器R 为10,L为1和2,所以R可以在收到消息后中断消息的继续发送 ,必需是以 sendOrderedBroadcast发送的消息才可被中断");
        abortBroadcast();//接收器R 为10,L为1和2,所以R可以在收到消息后中断消息的继续发送 ,必需是以 sendOrderedBroadcast发送的消息才可被中断

    }
}



你可能感兴趣的:(BroadcastReceiver(三)广播消息的优先级与中断)