就是程序里面有多個廣播(BroadcastReceiver),為什么每次我操作不同的按鈕都會執(zhí)行同一個廣播事件? 怎么把他們區(qū)分開來?比如說我點擊A按鈕會執(zhí)行A1廣播事件,點擊B按鈕會執(zhí)行B1廣播事件,但是我點擊A按鈕執(zhí)行的廣播事件是對的,就是A1,為什么我點擊B按鈕還是會執(zhí)行A1這廣播?
2 回答

慕沐林林
TA貢獻2016條經(jīng)驗 獲得超9個贊
在注冊廣播的時候需要聲明一個IntentFilter,在IntentFilter里面有一個setAction(String flag)。
String flag= "com.test.test.Mainactivity" ; Intent intent = new Intent(); //Itent就是我們要發(fā)送的內(nèi)容 intent.putExtra( "data" , "this is data from broadcast " +Calendar.getInstance().get(Calendar.SECOND)); intent.setAction(flag); //設(shè)置你這個廣播的action,只有和這個action一樣的接受者才能接受者才能接收廣播 sendBroadcast(intent); //發(fā)送廣播 |
接收的時候在onReceive里面
String action = intent.getAction(); if (action.equals( "com.test.test.Mainactivity" )){ //你想要實現(xiàn)的代碼 } |
注意的是不同的廣播使用不同的falg

慕桂英546537
TA貢獻1848條經(jīng)驗 獲得超10個贊
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("字符串");
上面的創(chuàng)建廣播中的“字符串”與,發(fā)送廣播時對應(yīng)就可以了。
即你創(chuàng)建兩個廣播時,上面的字符串分別為A、B。讓后點擊A按鈕發(fā)送廣播時也設(shè)為A,如下:
Intent intent = new Intent();
intent.setAction("A");
sendBroadcast(intent);
通理,B也一樣。
- 2 回答
- 0 關(guān)注
- 96 瀏覽
添加回答
舉報
0/150
提交
取消