Service生命週期最全面解析
阿新 • • 發佈:2019-02-03
前言
- Service作為Android四大元件之一,應用非常廣泛
- 本文將介紹Service最基礎的知識: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啟動服務的生命週期
3.2 只使用BindService繫結服務的生命週期
3.3 同時使用startService()啟動服務、BindService()繫結服務的生命週期
3.4 特別注意
- startService()和stopService()只能開啟和關閉Service,無法操作Service;
bindService()和unbindService()可以操作Service
- startService開啟的Service,呼叫者退出後Service仍然存在;
BindService開啟的Service,呼叫者退出後,Service隨著呼叫者銷燬。