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()
相關文章
- Java類的生命週期淺析Java
- Android Service生命週期 Service裡面的onStartCommand()方法詳解Android
- 淺析spring——IOC 之 分析 Bean 的生命週期SpringBean
- Android Activity生命週期Android
- 淺析SignalR連線生命週期的幾個重要方法SignalR
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- 淺談vue —— 生命週期Vue
- 淺析依賴注入框架的生命週期(以 InversifyJS 為例)依賴注入框架JS
- 【連載】淺析React生命週期之一:掛載階段React
- Android之各生命週期Android
- 深入淺出 Gin 生命週期
- Flutter仿Android生命週期LifecycleStateFlutterAndroid
- 淺談 ViewModel 的生命週期控制View
- Android全面解析之Activity生命週期Android
- Android View的生命週期詳解AndroidView
- Android 監聽生命週期工具庫Android
- Android中元件生命週期完全解析Android元件
- 深入淺出Tomcat/3 - Tomcat生命週期Tomcat
- Android學習路線_入門篇(五)Service的生命週期與如何保活Android
- React v16.3 版本新生命週期函式淺析及升級方案React函式
- Android Activity生命週期的一點感悟Android
- Android知識重溫之生命週期Android
- Android生命週期元件Lifecycle使用詳解Android元件
- Android:聊聊 MVP 中 Presenter 的生命週期AndroidMVP
- 生命週期
- 擼擼Android的羊毛(二)----Activity生命週期Android
- React16 生命週期函式深入淺出React函式
- View生命週期與Activity生命週期的關係View
- ubuntu生命週期Ubuntu
- vue生命週期Vue
- spring生命週期Spring
- Flutter - 生命週期Flutter
- sessionStorag 生命週期Session
- PHP 生命週期PHP
- maven生命週期Maven
- Activity生命週期
- React生命週期React
- vue - 生命週期Vue