1. 程式人生 > >Service生命週期最全面解析

Service生命週期最全面解析

前言

  • 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啟動服務的生命週期

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. 總結

請點贊!因為你們的贊同/鼓勵是我寫作的最大動力!