Carson帶你學Android:一份全面 & 簡潔的 Service 知識講解攻略


前言

  • Service作為 Android四大組件之一,應用非常廣泛
  • 本文將提供一份全面 & 簡潔的 Service知識講解攻略,希望你們會喜歡

目錄

目錄

1. 簡介

  • 定義:服務,是Android四大組件之一, 屬于 計算型組件
  • 作用:提供 需在后臺長期運行的服務

如:復雜計算、音樂播放、下載等

  • 特點:無用戶界面、在后臺運行、生命周期長

2. 生命周期

具體請文章:Android:Service生命周期最全面解析


3. 類型

Service可按照運行地點、運行類型 & 功能進行分類,具體如下:

3.1 具體分類

示意圖

3.2 詳細介紹

示意圖

4. 使用講解


5. 其他思考

5.1 Service 與 Thread的區別

  • 結論:ServiceThread 無任何關系
  • 之所以有不少人會把它們聯系起來,主要因為Service的后臺概念

后臺:后臺任務運行完全不依賴UI,即使Activity被銷毀 / 程序被關閉,只要進程還在,后臺任務就可繼續運行

  • 關于二者的異同,具體如下圖:
示意圖
  • 注:一般會將 ServiceThread聯合著用,即在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();  
    }  
  
}  

5.2 Service和IntentService的區別

具體請看文章:Android多線程:IntentService用法&源碼


6.總結

  • 本文 全面解析了 Service的所有知識(含:基礎認識、生命周期、使用 & 應用場景)
  • 若還想了解關于Service的其他知識,請瀏覽文章:

Android四大組件:Service史上最全面解析
Android:Service生命周期最全面解析
Android:(本地、可通信的、前臺、遠程)Service使用全面介紹
Android:遠程服務Service(含AIDL & IPC講解)
Android多線程全面解析:IntentService用法&源碼

  • Carson帶你學四大組件文章系列:

Carson帶你學Android:頁面活動-Activity
Carson帶你學Android:廣播-BroadcastReceiver
Carson帶你學Android:服務-Service
Carson帶你學Android:內存承載器-ContentProvider


歡迎關注Carson_Ho的簡書

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


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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容