1. 程式人生 > >Android四大元件:Service史上最全面解析

Android四大元件:Service史上最全面解析

前言

  • Service作為Android四大元件之一,應用非常廣泛
  • 本文將介紹對Service進行全面介紹(基礎認識、生命週期、使用和應用場景)

目錄

目錄

1. 基礎知識

  • 定義:服務,屬於Android中的計算型元件
  • 作用:提供需要在後臺長期執行的服務(如複雜計算、下載等等)
  • 特點:長生命週期的、沒有使用者介面、在後臺執行

2. 生命週期方法詳解

3. Service分類

3.1 Service的型別

分類

3.2 詳細介紹

Service型別的詳細介紹

4. Service的使用解析

由上述可知,服務Service總共分為:

分類

5. 使用場景

  • 通過上述描述,你應該對Service型別及其使用非常瞭解;
  • 那麼,我們該什麼時候用哪種型別的Service呢?
  • 各種Service的使用場景請看下圖:
    使用場景

6. 其他思考

6.1 Service和Thread的區別

  • 結論:Service和Thread之間沒有任何關係
  • 之所以有不少人會把它們聯絡起來,主要因為Service的後臺概念

    後臺的定義:後臺任務執行完全不依賴UI,即使Activity被銷燬,或者程式被關閉,只要程序還在,後臺任務就可以繼續執行

  • 其實二者存在較大的區別,如下圖:
    Paste_Image.png

一般來說,會將Service和Thread聯合著用,即在Service中再建立一個子執行緒(工作執行緒)去處理耗時操作邏輯,如下程式碼:

@Override  
public int onStartCommand(Intent intent, int flags, int startId) {  
//新建工作執行緒
    new Thread(new Runnable() {  
        @Override  
        public void run() {  
            // 開始執行後臺任務  
        }  
    }).start();  
    return super.onStartCommand(intent, flags, startId);  
}  

class
MyBinder extends Binder {
public void service_connect_Activity() { //新建工作執行緒 new Thread(new Runnable() { @Override public void run() { // 執行具體的下載任務 } }).start(); } }

6.2 Service和IntentService的區別

7.總結

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

不定期分享關於安卓開發的乾貨,追求短、平、快,但卻不缺深度