前言
-
Service
作為Android
四大組件之一,應用非常廣泛 - 本文將提供一份全面 & 簡潔的
Service
知識講解攻略,希望你們會喜歡
目錄
目錄
1. 簡介
- 定義:服務,是
Android
四大組件之一, 屬于 計算型組件 - 作用:提供 需在后臺長期運行的服務
如:復雜計算、音樂播放、下載等
- 特點:無用戶界面、在后臺運行、生命周期長
2. 生命周期
具體請文章:Android:Service生命周期最全面解析
3. 類型
Service
可按照運行地點、運行類型 & 功能進行分類,具體如下:
3.1 具體分類
示意圖
3.2 詳細介紹
示意圖
4. 使用講解
- 下面,我將介紹每種
Service
的具體使用 - 具體請看文章:Android:(本地、可通信的、前臺、遠程)Service使用全面介紹
5. 其他思考
5.1 Service 與 Thread的區別
- 結論:
Service
與Thread
無任何關系 - 之所以有不少人會把它們聯系起來,主要因為
Service
的后臺概念
后臺:后臺任務運行完全不依賴
UI
,即使Activity被銷毀 / 程序被關閉,只要進程還在,后臺任務就可繼續運行
- 關于二者的異同,具體如下圖:
示意圖
- 注:一般會將
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();
}
}
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的簡書
不定期分享關于安卓開發的干貨,追求短、平、快,但卻不缺深度。