各位大神好,我现在碰到一个问题,为什么不执行B1广播事件?

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

喵喵时光机
浏览 76回答 2
2回答

慕沐林林

在注册广播的时候需要声明一个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

IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("字符串");上面的创建广播中的“字符串”与,发送广播时对应就可以了。即你创建两个广播时,上面的字符串分别为A、B。让后点击A按钮发送广播时也设为A,如下:Intent intent = new Intent();  intent.setAction("A");  sendBroadcast(intent);通理,B也一样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android