廣播接收者的分類屋讶,兩種分法:
一、分為全局廣播和本地廣播
二、分為有序廣播和無序廣播
廣播接收者的注冊毯盈,動態(tài)注冊和靜態(tài)注冊
第一行代碼劃線筆記:
1、發(fā)送廣播的方法:借助Intent
2病袄、動態(tài)注冊的廣播接收器可以自由的控制注冊與注銷搂赋,在靈活性方面有很大的優(yōu)勢,但是它也存在著一個缺點(diǎn)益缠,即必須要在程序啟動之后才能接收到廣播脑奠,因?yàn)樽缘倪壿嬍菍懺趏nCreat()方法中的。
3幅慌、需要注意的是宋欺,不要在onReceive()方法中添加過多的邏輯或者進(jìn)行任何的耗時操作,因?yàn)?b>在廣播接收器中是不允許開啟線程的胰伍,當(dāng)onReceive()方法運(yùn)行了較長時間而沒有結(jié)束時齿诞,程序就會報(bào)錯。因此廣播接收器更多的是扮演一種打開程序其他組件的角色喇辽,比如創(chuàng)建一條狀態(tài)欄通知掌挚,或者啟動一個服務(wù)等。
4菩咨、廣播是一種可以跨進(jìn)程的通信方式
5吠式、為了能夠解決廣播的安全性問題,Android引入了一套本地廣播機(jī)制抽米,使用這個機(jī)制發(fā)出的廣播只能夠在應(yīng)用程序的內(nèi)部進(jìn)行傳遞特占,并且廣播接收器也只能接收來自本應(yīng)用程序發(fā)出的廣播。 LocalBroadcastManager
6云茸、本地廣播是無法通過靜態(tài)注冊的方式來接收的
7是目、發(fā)送本地廣播比發(fā)送全局廣播更加高效
8、實(shí)現(xiàn)強(qiáng)制下線功能:當(dāng)我們被通知需要強(qiáng)制下線時标捺,可能處于任何一個界面懊纳,難道需要在每個界面上都編寫一個彈出對話框的邏輯?強(qiáng)制下線功能需要先關(guān)閉所有的活動亡容,然后回到登錄界面嗤疯。應(yīng)該在哪里創(chuàng)建廣播接收器?答案很明顯闺兢,只需要在BaseActivity中動態(tài)注冊一個廣播接收器就可以了茂缚,因?yàn)樗械幕顒佣际抢^承自BaseActivity的。