(android實戰)Service 生命周期和使用注意項


一.基礎知識

服務一般分為兩種:

1:本地服務, Local Service 用於應用程序內部。在Service可以調用Context.startService()啟動,調用Context.stopService()結束。 在內部可以調用Service.stopSelf() 或 Service.stopSelfResult()來自己停止。無論調用了多少次startService(),都只需調用一次 stopService()來停止。

2:遠程服務, Remote Service 用於android系統內部的應用程序之間。可以定義接口並把接口暴露出來,以便其他應用進行操作。客戶端建立到服務對象的連接,並通過那個連接來調用服 務。調用Context.bindService()方法建立連接,並啟動,以調用 Context.unbindService()關閉連接。多個客戶端可以綁定至同一個服務。如果服務此時還沒有加載,bindService()會先加 載它。
提供給可被其他應用復用,比如定義一個天氣預報服務,提供與其他應用調用即可。

那么先來看Service的生命周期吧:如圖:

 

context.startService() ->onCreate()- >onStartCommand()->Service running--調用context.stopService() ->onDestroy()

context.bindService()->onCreate()->onBind()->Service running--調用>onUnbind() -> onDestroy() 從上訴可以知道分別對應本地的,,以及遠程的,也對應不同的方式啟動這個服務。

 

 

二.注意事項

2.1  同一服務,多次啟動,服務實際執行的過程

第一次 啟動服務時,運行 onCreate -->onStartCommand

后面在啟動服務時,服務只執行onStartCommand

在實際使用過程中,通過Intent 傳遞數據,在OnStartCommand中執行。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM