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)用