android如何区分多个不同的广播?

2025-05-01 04:06:05
推荐回答(2个)
回答1:

在注册广播的时候需要声明一个IntentFilter,在IntentFilter里面有一个setAction(String flag)。

 

 String flag="com.test.test.Mainactivity";
 Intent intent = new Intent();  //Itent就是我们要发送的内容
 intent.putExtra("data", "this is data from broadcast "+Calendar.getInstance().get(Calendar.SECOND));  
 intent.setAction(flag);   //设置你这个广播的action,只有和这个action一样的接受者才能接受者才能接收广播
 sendBroadcast(intent);   //发送广播

接收的时候在onReceive里面

String action = intent.getAction();
if(action.equals("com.test.test.Mainactivity")){
    //你想要实现的代码
}

注意的是不同的广播使用不同的falg

回答2:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("字符串");
上面的创建广播中的“字符串”与,发送广播时对应就可以了。
即你创建两个广播时,上面的字符串分别为A、B。让后点击A按钮发送广播时也设为A,如下:
Intent intent = new Intent();
intent.setAction("A");
sendBroadcast(intent);
通理,B也一样。