具體請看我寫的文章:Android:Service生命週期最全面解析
由上述可知,服務Service總共分為:
接下來,我將介紹每種Service的具體使用,具體請看我寫的文章:Android:(本地、可通信的、前臺、遠程)Service使用全面介紹
之所以有不少人會把它們聯繫起來,主要因為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();
}
}
具體請看我寫的文章:Android多線程全面解析:IntentService用法&源碼
Android:Service服務史上最全面解析
Android:Service生命週期最全面解析
Android:(本地、可通信的、前臺、遠程)Service使用全面介紹
Android:遠程服務Service(含AIDL & IPC講解)
Android多線程全面解析:IntentService用法&源碼
相關文章閱讀
Android開發:最全面、最易懂的Android屏幕適配解決方案
Android開發:Handler異步通信機制全面解析(包含Looper、Message Queue)
Android開發:最全面、最易懂的Webview詳解
Android開發:JSON簡介及最全面解析方法!
Android開發:頂部Tab導航欄實現(TabLayout+ViewPager+Fragment)
Android開發:底部Tab菜單欄實現(FragmentTabHost+ViewPager)