就是程序里面有多个广播(BroadcastReceiver),为什么每次我操作不同的按钮都会执行同一个广播事件? 怎么把他们区分开来?比如说我点击A按钮会执行A1广播事件,点击B按钮会执行B1广播事件,但是我点击A按钮执行的广播事件是对的,就是A1,为什么我点击B按钮还是会执行A1这广播?
2 回答

慕沐林林
TA贡献2016条经验 获得超9个赞
在注册广播的时候需要声明一个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

慕桂英546537
TA贡献1848条经验 获得超10个赞
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("字符串");
上面的创建广播中的“字符串”与,发送广播时对应就可以了。
即你创建两个广播时,上面的字符串分别为A、B。让后点击A按钮发送广播时也设为A,如下:
Intent intent = new Intent();
intent.setAction("A");
sendBroadcast(intent);
通理,B也一样。
- 2 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消