Android 第六講 廣播接收器和服務(wù)

1.廣播的定義

  廣播接收器組件是很小的組件,負(fù)責(zé)監(jiān)聽接受應(yīng)用發(fā)出廣播消息,并做出響應(yīng)。

特點(diǎn)

  1)生命周期很短:調(diào)用對(duì)象  ->  執(zhí)行 onReceive 方法  ->  結(jié)束

  2)應(yīng)該在主線程中構(gòu)造

  3)如果10秒內(nèi)onReceive方法沒有執(zhí)行完,系統(tǒng)任務(wù)程序沒有響應(yīng)

2.接受系統(tǒng)廣播

兩種方式:靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)
動(dòng)態(tài)注冊(cè):

InternetFilter internetFilter = new InternetFilter();
internetFilter .addAction("android.net.conn.CONNECTIVITY_...")
NetworkChangeReceiver net = new NetworkChangeReceiver();
this.registerReceiver(net,intent) 

1)動(dòng)態(tài)注冊(cè):需要定義一個(gè)繼承自BroadcastReceiver類的子類,該接收器需要在Activity中的onDestroy中注銷
2)靜態(tài)注冊(cè):通過在AndroidManifest.xml中配置

3.自定義廣播

兩種廣播形式:有序廣播和無序廣播
1)無序廣播:接受標(biāo)準(zhǔn)廣播的接收器將同時(shí)收到廣播消息,異步執(zhí)行,沒有先后順序 sendBroadCast
2)有序廣播:sendOrderedBroadCast,按照一定順序先后被接受順序,由priority屬性決定,abortBroadCast中斷廣播

4.使用本地廣播

如果只想在本應(yīng)用中發(fā)送和接受廣播,使用LocalBroadcastReceiver來對(duì)廣播進(jìn)行管理
本地廣播不支持靜態(tài)注冊(cè)
優(yōu)點(diǎn):安全高效

5.服務(wù)

Service是Android中的一種組件,和Activity的級(jí)別一致,但不能自己運(yùn)行,只能后臺(tái)運(yùn)行,和其他組件交互,服務(wù)必須注冊(cè)才能使用

6.服務(wù)的兩種模式

本地服務(wù):服務(wù)依附在主線程中,節(jié)約資源,主線程死掉服務(wù)終止
遠(yuǎn)程服務(wù):服務(wù)在獨(dú)立進(jìn)程中,靈活性好 ,占用資源高

7.生命周期

兩種服務(wù)的啟動(dòng)模式:
1)start方式:調(diào)用者和服務(wù)之間沒有關(guān)聯(lián),調(diào)用者退出不會(huì)影響服務(wù),startService啟動(dòng)服務(wù),如果服務(wù)不存在,調(diào)用onCreat方法,然后onStartCommand被調(diào)用。stopService關(guān)閉服務(wù),onDestroy方法被調(diào)用
2)bind方式:調(diào)用者和服務(wù)綁定,調(diào)用者退出,服務(wù)終止bindService啟動(dòng)服務(wù),onCreate方法創(chuàng)建服務(wù),onBind方法綁定服務(wù),onUnbind方法解綁,onDestory在服務(wù)結(jié)束時(shí)調(diào)用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容