1. 程式人生 > >廣播接收者的優先順序

廣播接收者的優先順序

.

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塊錢");      //改廣播的內容
	}