版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄7.1創(chuàng)建廣播7.2普通廣播7.3有序廣播七、BroadcastReceiver七、BroadcastReceiver
啟動(dòng)BroadcastReceiver(1)創(chuàng)建需要啟動(dòng)BroadcastReceiver的Intent;(2)調(diào)用Context的sendBroadcast()或sendOrderedBroadcast()方法來(lái)啟動(dòng)指定的BroadcastReceiver。
實(shí)現(xiàn)BroadcastReceiver只要重寫(xiě)B(tài)roadcastReceiver的onReceive(Conextcontext,Intentintent)方法即可。7.1創(chuàng)建廣播七、BroadcastReceiver
實(shí)現(xiàn)了BroadcastReceiver,就應(yīng)該指定該BroadcastReceiver能匹配的Intent,此時(shí)有兩種方式:(1)使用代碼進(jìn)行指定。調(diào)用BroadcastReceiver的Context的registerReceiver(BroadcastReceiverreceiver,IntentFilterfilter)方法進(jìn)行指定。例如:(2)在AndroidManifest.xml文件中配置。例如:七、BroadcastReceiver
如果BroadcastReceiver的onReceiver()方法不能在10秒內(nèi)執(zhí)行完成,Android會(huì)認(rèn)為該程序無(wú)響應(yīng)。所以不要在BroadcastReceiver的onReceive()方法里執(zhí)行一些耗時(shí)操作,否則會(huì)彈出ANR。
如果確實(shí)需要根據(jù)Broadcast來(lái)完成一項(xiàng)比較耗時(shí)的操作,則可以考慮通過(guò)Intent啟動(dòng)一個(gè)Service來(lái)完成該操作,不應(yīng)考慮使用新線程去完成耗時(shí)操作,因?yàn)閺V播接收者本身的生命周期很短,可能出現(xiàn)的情況是子線程還沒(méi)有結(jié)束,BroadcastReceiver就已經(jīng)退出了。
如果BroadcastReceiver所在的進(jìn)程結(jié)束了,雖然該進(jìn)程內(nèi)還有用戶啟動(dòng)的新線程,但由于該進(jìn)程不包含任何活動(dòng)組件,因此系統(tǒng)可能在內(nèi)存緊張時(shí)有限結(jié)束該進(jìn)程,這樣就可能導(dǎo)致BroadcastReceiver啟動(dòng)的子線程不能執(zhí)行完成。七、BroadcastReceiver
在程序中發(fā)送廣播需調(diào)用Context的sendBroadcast(Intentintent)方法,這條廣播將會(huì)啟動(dòng)intent參數(shù)所對(duì)應(yīng)的BroadcastReceiver。示例:發(fā)送Broadcast和使用BroadcastReceiver接收廣播。該程序的Activity界面中包含了一個(gè)按鈕,當(dāng)用戶單擊該按鈕時(shí)程序會(huì)向外發(fā)送一條廣播。7.2普通廣播七、BroadcastReceiver七、BroadcastReceiver
粗體字代碼用于創(chuàng)建一個(gè)Intent對(duì)象,并使用該Intent對(duì)象對(duì)外發(fā)送一條廣播,所使用的BroadcastReceiver代碼:七、BroadcastReceiver
當(dāng)符合該MyBroadcastReceiver的廣播出現(xiàn)時(shí),該MyBroadcastReceiver的onReceive()方法將會(huì)觸發(fā),從而在該方法中顯示廣播所攜帶的信息。
上面發(fā)送廣播的程序中在指定發(fā)送廣播時(shí)所用的Intent的Action為“com.iboss.receiver”,需要廣播接收者監(jiān)聽(tīng)Action,在清單文件中增加配置即可:七、BroadcastReceiver
運(yùn)行該程序,點(diǎn)擊程序中的“發(fā)送廣播”按鈕,觀察Logcat輸出,從Logcat可以看出,廣播接收者接收到了MainActivity發(fā)送的廣播同時(shí)收到它攜帶的數(shù)據(jù)。圖7.1七、BroadcastReceiverBroadcast分為兩種:1.NormalBroadcast(普通廣播):NormalBroadcast是完全異步的,可以在同一時(shí)刻被所有接收者接收到,消息傳遞的效率比較高,但缺點(diǎn)是接受者不能將處理結(jié)果傳遞給下一個(gè)接收者,并且無(wú)法終止Broadcast的傳播。2.OrderedBroadcast(有序廣播):OrderedBroadcast的接收者將按預(yù)先聲明的優(yōu)先級(jí)依次接收Broadcast。7.3有序廣播七、BroadcastReceiverContext提供了兩個(gè)方法用于發(fā)送廣播:(1)?sendBroadcast():發(fā)送普通廣播。(2)?sendOrderedBroadcast:發(fā)送有序廣播。案例:用師父?jìng)鞴Φ膱?chǎng)景來(lái)模擬接收者接收一個(gè)發(fā)送廣播。師父對(duì)3個(gè)徒弟一視同仁,教授徒弟武功,可以模擬成發(fā)送普通廣播。當(dāng)發(fā)送普通廣播時(shí),每個(gè)徒弟學(xué)習(xí)相同的內(nèi)容(同時(shí)接收廣播)。如果師父只傳授給大師兄,大師兄傳授給二師兄,二師兄再傳授給三師兄,就需要優(yōu)先級(jí),這樣又存在一個(gè)能力問(wèn)題,師兄們的能力有限,不能完全接收上一級(jí)教授的知識(shí),那么他相應(yīng)地傳給下一級(jí)的功夫肯定打折扣。這就模擬了有序廣播。七、BroadcastReceiver
該程序的Activity界面上只有兩個(gè)普通按鈕,一個(gè)發(fā)送普通廣播,另一個(gè)發(fā)送有序廣播,項(xiàng)目結(jié)構(gòu):圖7.2七、BroadcastReceiver
在清單文件中注冊(cè)三個(gè)廣播接收者。它們的action都是相同的,這樣就確保發(fā)送廣播都能接收到,優(yōu)先級(jí)別分別為1000、600、400:七、BroadcastReceiver布局文件設(shè)置了2個(gè)按鈕,并且同時(shí)綁定了點(diǎn)擊事件:七、BroadcastReceiver
在這三個(gè)廣播接收者中,都接收了傳遞來(lái)的數(shù)據(jù),并做相應(yīng)的修改。
大師兄的代碼如下:七、BroadcastReceiver二師兄的代碼如下:七、BroadcastReceiver三師兄的代碼如下:七、BroadcastReceiverMainActivity中處理普通廣
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 克孜勒蘇職業(yè)技術(shù)學(xué)院《移動(dòng)應(yīng)用開(kāi)發(fā)A》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院《全球衛(wèi)生》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南農(nóng)業(yè)大學(xué)《數(shù)字視頻處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北孝感美珈職業(yè)學(xué)院《公共部門人力資源管理實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】《功率》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版(2024)初中物理八年級(jí)下冊(cè)
- 高考物理總復(fù)習(xí)《電場(chǎng)》專項(xiàng)測(cè)試卷含答案
- 重慶文理學(xué)院《建筑設(shè)計(jì)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶工程職業(yè)技術(shù)學(xué)院《數(shù)字化設(shè)計(jì)與制造雙語(yǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院《太極拳》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國(guó)美術(shù)學(xué)院《電工與電子技術(shù)(B)》2023-2024學(xué)年第一學(xué)期期末試卷
- 光伏發(fā)電并網(wǎng)申辦具體流程
- 基本藥物制度政策培訓(xùn)課件
- 2025年中國(guó)華能集團(tuán)限公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- GB/T 45002-2024水泥膠砂保水率測(cè)定方法
- 全自動(dòng)化學(xué)發(fā)光分析儀操作規(guī)程
- 深藍(lán)的故事(全3冊(cè))
- GB/T 42461-2023信息安全技術(shù)網(wǎng)絡(luò)安全服務(wù)成本度量指南
- 職校開(kāi)學(xué)第一課班會(huì)PPT
- 央國(guó)企信創(chuàng)白皮書(shū) -基于信創(chuàng)體系的數(shù)字化轉(zhuǎn)型
- GB/T 36964-2018軟件工程軟件開(kāi)發(fā)成本度量規(guī)范
- 機(jī)加車間各崗位績(jī)效考核方案
評(píng)論
0/150
提交評(píng)論