Android Service生命週期淺析

Service 作爲 Android四大組件之一,應用非常廣泛。和Activity一樣,Service 也有一系列的生命週期回調函數,我們可以用來監測 Service狀態變化,並且在適當的時候執行適當的工作。

Service生命週期圖

1. 生命週期狀態

Service生命週期流程圖:

Service生命週期流程圖

  • onCreate():
    首次創建服務時,系統將調用此方法。如果服務已在運行,則不會調用此方法,該方法只調用一次。

  • onStartCommand():
    當另一個組件通過調用startService()請求啓動服務時,系統將調用此方法。

  • onDestroy():
    當服務不再使用且將被銷燬時,系統將調用此方法。

  • onBind():
    當另一個組件通過調用bindService()與服務綁定時,系統將調用此方法。

  • onUnbind():
    當另一個組件通過調用unbindService()與服務解綁時,系統將調用此方法。

  • onRebind():
    當舊的組件與服務解綁後,另一個新的組件與服務綁定,onUnbind()返回true時,系統將調用此方法。

2. 生命週期方法

在Service的生命週期裏,常用的方法有:

  • 手動調用的方法:
手動調用方法 作用
startService() 啓動服務
stopService() 關閉服務
bindService() 綁定服務
unbindService() 解綁服務
  • 自動調用的方法:
自動調用方法 作用
onCreat() 創建服務
onStartCommand() 開始服務
onDestroy() 銷燬服務
onBind() 綁定服務
onUnbind() 解綁服務

3. 生命週期調用

1)啓動Service服務
單次:startService() —> onCreate() —> onStartCommand()
多次:startService() —> onCreate() —> onStartCommand() —> onStartCommand()
2)停止Service服務
stopService() —> onDestroy()
3)綁定Service服務
bindService() —> onCreate() —> onBind()
4)解綁Service服務
unbindService() —> onUnbind() —> onDestroy()
5)啓動綁定Service服務
startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()
6)解綁停止Service服務
unbindService() —> onUnbind() —> stopService() —> onDestroy()
7)解綁綁定Service服務
unbindService() —> onUnbind(ture) —> bindService() —> onRebind()


鏈接:https://www.jianshu.com/p/cc25fbb5c0b3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章