Android四大組件:Service服務史上最全面解析


前言

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


    目錄


    目錄
    </div>


    1. 基礎知識

    • 定義:服務,屬於Android中的計算型組件
    • 作用:提供需要在後臺長期運行的服務(如複雜計算、下載等等)
    • 特點:長生命週期的、沒有用戶界面、在後臺運行
    • </ul>


      2. 生命週期方法詳解

      具體請看我寫的文章:Android:Service生命週期最全面解析


      3. Service分類

      3.1 Service的類型


      分類
      </div>

      3.2 詳細介紹


      Service類型的詳細介紹
      </div>

      4. Service的使用解析

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


      分類
      </div>

      接下來,我將介紹每種Service的具體使用,具體請看我寫的文章:Android:(本地、可通信的、前臺、遠程)Service使用全面介紹

      5. 使用場景

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

        使用場景
      • </ul>

        6. 其他思考

        6.1 Service和Thread的區別

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

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

          </li>

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


          Paste_Image.png
          </div> </li> </ul>

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

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

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

          }</code></pre>

          6.2 Service和IntentService的區別

          具體請看我寫的文章:Android多線程全面解析:IntentService用法&源碼


          7.總結

          • 本文對Service的所有知識進行了全面解析(基礎認識、生命週期、使用和應用場景)
          • 如果你還想了解關於Service的其他知識,請瀏覽以下文章:

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

          • </ul>

            • 接下來會介紹繼續介紹Android開發中的相關知識,有興趣可以繼續關注Carson_Ho的安卓開發筆記
            • </ul>


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

              相關文章閱讀
              Android開發:最全面、最易懂的Android屏幕適配解決方案
              Android開發:Handler異步通信機制全面解析(包含Looper、Message Queue)
              Android開發:最全面、最易懂的Webview詳解
              Android開發:JSON簡介及最全面解析方法!
              Android開發:頂部Tab導航欄實現(TabLayout+ViewPager+Fragment)
              Android開發:底部Tab菜單欄實現(FragmentTabHost+ViewPager)