廣播接收者的優先順序
阿新 • • 發佈:2019-01-07
.
1. 無序廣播 sendBroadcast(intent);
2. 有序廣播 sendOrderedBroadcast(intent,receiverPermission);
3. 優先順序相同時,在配置檔案中靠前的先得到訊息
不同程式中,哪個先安裝哪個就先得道訊息
發廣播:------------------無需配置
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 傳送無序廣播 * @param view */ public void send1(View view){ Intent intent = new Intent(); intent.setAction("com.itheima.broadcasttest.songwennuan"); intent.putExtra("msg", "發1萬塊"); //傳送的訊息 //無序廣播,不可被攔截,不可終止。 sendBroadcast(intent); } /** * 傳送有序廣播 * @param view */ public void send2(View view){ Intent intent = new Intent(); intent.setAction("com.itheima.broadcasttest.songwennuan"); //有序廣播,可被攔截,可終止,可以修改資料。 sendOrderedBroadcast(intent, null, new FinalReceiver(), null, 0, "給農民兄弟發10000塊錢", null); //第三個引數,誰必須要收到廣播new FinalReceiver()----------其中一個接收者 } }
接收者:------------------------------------需要配置
優先順序intent-filterandroid:priority="1000”
public class Level1Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String message = getResultData(); System.out.println("省級部門得到中央的訊息:"+message); //abortBroadcast(); //攔截廣播 setResultData("給農民兄弟發5000塊錢"); //改廣播的內容 }