資源描述:
《黑馬程序員安卓教程:發(fā)送有序廣播》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、發(fā)送有序廣播有序廣播可以被攔截,且優(yōu)先級(jí)高的接收者可以攔截優(yōu)先級(jí)低的。廣播接收者的優(yōu)先級(jí)的推薦取值范圍是:1000(最高)~-1000(最低)相同優(yōu)先級(jí)下,接收的順序要看在清單文件中聲明的順序,先聲明的接收者比后聲明的要先收到廣播有序廣播使用sendOrderedBroadcast方法來(lái)發(fā)送,使用abortBroadcast方法攔截廣播接收者的優(yōu)先級(jí)在清單文件中聲明接收者時(shí),在標(biāo)簽下通過(guò)設(shè)置”android:property”屬性來(lái)設(shè)置需求創(chuàng)建一個(gè)應(yīng)用,在該應(yīng)用中模擬一個(gè)廣播發(fā)送者,多個(gè)廣播
2、接收者。給這些接收者配置不同的優(yōu)先級(jí)。然后觀察當(dāng)發(fā)送廣播的時(shí)候這些接收者接收到廣播的順序和數(shù)據(jù)又什么不同。17代碼在該工程中使用了一個(gè)MainActivity,提供一個(gè)按鈕用于點(diǎn)擊發(fā)送有序廣播,三個(gè)BroadCastReceiver類,分別是MyReceiver1、MyReceiver2、MyReceiver3。分別給這三個(gè)BroadCastReceiver配置優(yōu)先級(jí)為100/200/300?!疚募?-16】MainActivity.java1.packagecom.itheima.orderedbroadcast;2.
3、3.importandroid.os.Bundle;4.importandroid.view.View;5.importandroid.app.Activity;6.importandroid.content.Intent;7./**8.*發(fā)送無(wú)序廣播9.*10.*@authorwzy2015-11-193.*4.*/5.publicclassMainActivityextendsActivity{6.7.@Override16.protectedvoidonCreate(BundlesavedInstanceState
4、){17.super.onCreate(savedInstanceState);18.setContentView(R.layout.activity_main);19.}20.21./**22.*發(fā)送無(wú)序廣播23.*24.*@paramview25.*/26.publicvoidsend(Viewview){27.Intentintent=newIntent();28.intent.setAction("com.itheima.broadcast");29./**30.*參數(shù)1Intent類型:意圖31.*參數(shù)2Str
5、ing類型receiverPermission,接收器需要的權(quán)限32.*參數(shù)3BroadcastReceiver類型,自己定義的接收者作為最終接收者33.*參數(shù)4Handler類型,用于執(zhí)行接收器的回調(diào),如果為null則在主線程中執(zhí)行34.*參數(shù)5int類型,結(jié)果代碼的初始碼35.*參數(shù)6初始化參數(shù)36.*參數(shù)7Bundle類型,額外的數(shù)據(jù)37.*/1838.sendOrderedBroadcast(intent,null,null,null,0,"轉(zhuǎn)賬10000元",null);39.}40.41.}42.3個(gè)MyRe
6、ceiver代碼邏輯是完全一樣的,因此這里只給出第一個(gè)的源碼?!疚募?-17】MyReceiver1.java1.packagecom.itheima.orderedbroadcast;2.3.importandroid.content.BroadcastReceiver;4.importandroid.content.Context;5.importandroid.content.Intent;6.importandroid.util.Log;3./**4.*接收自己發(fā)送的廣播5.*6.*@authorwzy2015-
7、11-197.*8.*/9.publicclassMyReceiver1extendsBroadcastReceiver{10.15.@Override16.publicvoidonReceive(Contextcontext,Intentintent){17.Stringaction=intent.getAction();18.StringresultData=getResultData();19.Log.d("tag","MyReceiver1接收到"+action+"發(fā)布的廣播:"+resultData);20.}
8、21.}注冊(cè)BroadCastReceiver【文件1-18】AndroidManifest.xml中接收者配置情況1.2.