從事Android以來的相關(guān)總結(jié)5-Service服務(wù)

Service服務(wù)

Service是一種在后臺長期運行的,沒有界面的組件,由其他組件調(diào)用開始運行;

服務(wù)不太會被kill,即使在內(nèi)存不足時被kill,當(dāng)內(nèi)存恢復(fù)時,服務(wù)會自動復(fù)活,例如下載就可以放入服務(wù)中來做,下載時,啟動服務(wù),完成時,關(guān)閉服務(wù);

1、創(chuàng)建與使用Service

1)、定義類繼承Service,清單文件中聲明,同樣也可以配置意圖過濾;

2)、使用Intent來開啟Service,在其他組件中調(diào)用startService方法;

3)、停止Service,調(diào)用stopService方法;

2、生命周期

Service中的生命周期方法(Context調(diào)用執(zhí)行):

1)startService()如果沒創(chuàng)建就先onCreate()再startCommand(),如果已創(chuàng)建就只執(zhí)行startCommand();

2)stopService()執(zhí)行onDestroy()

3)bindService()如果沒有創(chuàng)建就先onCreate()再onBind()

4)unbindService()如果服務(wù)是在綁定時啟動的,先執(zhí)行onUnbind()再執(zhí)行onDestroy().如果服務(wù)在綁定前已啟動,那么只執(zhí)行onUnbind();

3、開啟服務(wù)的2種方式

2種不同開啟方式的區(qū)別:

1)startService:

開啟服務(wù),服務(wù)一旦開啟,就長期就后臺運行,即使調(diào)用者退出來,服務(wù)還會長期運行;

資源不足時,被殺死,資源足夠時,又會復(fù)活;

2)bindService:

綁定服務(wù),綁定服務(wù)的生命周期會跟調(diào)用者關(guān)聯(lián)起來,調(diào)用者退出,服務(wù)也會跟著銷毀;

通過綁定服務(wù),可以間接的調(diào)用服務(wù)里面的方法(onBind返回IBinder);

4、服務(wù)混合調(diào)用生命周期

一般的調(diào)用順序:

①、start-> stop開啟–>結(jié)束

②、bind-> unbind綁定(服務(wù)開啟)->解綁(服務(wù)結(jié)束)

混合調(diào)用:

①、start –> bind -> stop->unbind->ondestroy通常不會使用這種模式

開啟–>綁定–>結(jié)束(服務(wù)停不了)->解除綁定(服務(wù)才可停掉)

②、start –>bind -> unbind -> stop經(jīng)常使用

開啟–>綁定–>解綁(服務(wù)繼續(xù)運行)-> stop(不用時,再停止服務(wù))

這樣保證了服務(wù)長期后臺運行,又可以調(diào)用服務(wù)中的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容