Android Service生命週期淺析
Service
作為 Android四大元件之一,應用非常廣泛。和Activity
一樣,Service
也有一系列的生命週期回撥函式,我們可以用來監測 Service
狀態變化,並且在適當的時候執行適當的工作。
Service生命週期圖
1. 生命週期狀態
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()
相關文章
- 淺析 React 生命週期React
- Android 之 Activity 生命週期淺析(一)Android
- Android 之 Activity 生命週期的淺析(二)Android
- Java類的生命週期淺析Java
- Service生命週期詳解
- Android中bindService的使用及Service生命週期Android
- Android中startService的使用及Service生命週期Android
- Android Service生命週期 Service裡面的onStartCommand()方法詳解Android
- 淺析spring——IOC 之 分析 Bean 的生命週期SpringBean
- 安卓MVP淺析及Presenter的生命週期問題安卓MVP
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- 淺析 UIApplication 生命週期的一些 delegate 方法UIAPP
- 淺談vue —— 生命週期Vue
- React 生命週期淺談React
- 淺析SignalR連線生命週期的幾個重要方法SignalR
- 【連載】淺析React生命週期之一:掛載階段React
- 深入淺出 Gin 生命週期
- Android Activity生命週期Android
- 淺析依賴注入框架的生命週期(以 InversifyJS 為例)依賴注入框架JS
- 淺談資料庫生命週期資料庫
- Android之各生命週期Android
- [Android]Activity的生命週期Android
- Android MediaPlayer的生命週期Android
- Android Activit生命週期方法Android
- android:碎片的生命週期Android
- 淺談 ViewModel 的生命週期控制View
- Android Fragment生命週期深入探究AndroidFragment
- Android 元件系列-----Activity生命週期Android元件
- Android Activity生命週期詳解Android
- Android程式生命週期ProcessLifecycleAndroid
- 生命週期
- Android 監聽生命週期工具庫Android
- Flutter仿Android生命週期LifecycleStateFlutterAndroid
- Android View的生命週期詳解AndroidView
- Android全面解析之Activity生命週期Android
- Android中元件生命週期完全解析Android元件
- Android 程式生命週期 Process LifecycleAndroid
- React v16.3 版本新生命週期函式淺析及升級方案React函式