Android四大組件:Service生命週期最全面解析

前言
- Service作為Android四大組件之一,應用非常廣泛
- 本文將介紹Service最基礎的知識:Service的生命週期
如果你對Service還未了解,建議先閱讀我寫的文章:
Android四大組件:Service史上最全面解析
目錄

目錄
1. 生命週期常用方法
在Service的生命週期裡,常用的有:
- 4個手動調用的方法
手動調用方法 | 作用 |
---|---|
startService() | 啟動服務 |
stopService() | 關閉服務 |
bindService() | 綁定服務 |
unbindService() | 解綁服務 |
- 5個內部自動調用的方法
內部自動調用的方法 | 作用 |
---|---|
onCreat() | 創建服務 |
onStartCommand() | 開始服務 |
onDestroy() | 銷燬服務 |
onBind() | 綁定服務 |
onUnbind() | 解綁服務 |
2. 生命週期方法具體介紹
主要介紹內部調用方法和外部調用方法的關係。
2.1 startService()
- 作用:啟動Service服務
- 手動調用startService()後,自動調用內部方法:onCreate()、onStartCommand()
- 調用邏輯如下:調用邏輯
2.2 stopService()
- 作用:關閉Service服務
- 手動調用stopService()後,自動調用內部方法:onDestory()
- 調用的邏輯:

調用邏輯
2.3 bindService()
- 作用:綁定Service服務
- 手動調用bindService()後,自動調用內部方法:onCreate()、onBind()
- 調用的邏輯:

調用的邏輯
2.4 unbindService()
- 作用:解綁Service服務
- 手動調用unbindService()後,自動調用內部方法:onCreate()、onBind()、onDestory()
- 調用的邏輯:調用的邏輯
3. 常見的生命週期使用
3.1 只使用startService啟動服務的生命週期

startService啟動服務的生命週期
3.2 只使用BindService綁定服務的生命週期

BindService綁定服務的生命週期
3.3 同時使用startService()啟動服務、BindService()綁定服務的生命週期

Paste_Image.png
3.4 特別注意
- startService()和stopService()只能開啟和關閉Service,無法操作Service;
bindService()和unbindService()可以操作Service
- startService開啟的Service,調用者退出後Service仍然存在;
BindService開啟的Service,調用者退出後,Service隨著調用者銷燬。
4. 總結
- 本文對Service的生命週期進行了全面解析
-
如果你還想了解關於Service的其他知識,請瀏覽以下文章:
Android四大組件:Service史上最全面解析
Android:Service生命週期最全面解析
Android:(本地、可通信的、前臺、遠程)Service使用全面介紹
Android:遠程服務Service(含AIDL & IPC講解)
Android多線程全面解析:IntentService用法&源碼 -
接下來會介紹繼續介紹Android開發中的相關知識,有興趣可以繼續關注Carson_Ho的安卓開發筆記
請點贊!因為你們的贊同/鼓勵是我寫作的最大動力!
相關文章閱讀
Android開發:最全面、最易懂的Android屏幕適配解決方案
Android開發:Handler異步通信機制全面解析(包含Looper、Message Queue)
Android開發:最全面、最易懂的Webview詳解
Android開發:JSON簡介及最全面解析方法!
Android開發:頂部Tab導航欄實現(TabLayout+ViewPager+Fragment)
Android開發:底部Tab菜單欄實現(FragmentTabHost+ViewPager)
歡迎關注Carson_Ho的簡書!
不定期分享關於安卓開發的乾貨,追求短、平、快,但卻不缺深度。

</div>