Android 開發中Service完全解析

來源:互聯網
上載者:User

標籤:androi   top   manifest   alt   family   star   手動   聯合   style   

 

 

  • 定義:服務,是Android四大組件之一,屬於計算型組件
  • 作用:提供 需在後台長期啟動並執行服務
  • 生命週期:
        

   在Service的生命週期裡,常用的有:

  (1) 4個手動調用的方法

手動調用方法

作用

startService()

啟動服務

stopService()

關閉服務

bindService()

綁定服務

unbindService()

解除綁定服務

  (2) 5個自動調用的方法

內部自動調用的方法

作用

onCreat()

建立服務

onStartCommand()

開始服務

onDestroy()

銷毀服務

onBind()

綁定服務

onUnbind()

解除綁定服務

  • 注意:必須聲明在AndroidManifest.xml檔案中。(Android四大組件均需要聲明在此設定檔中)
  • 使用情境:

(1)僅啟動一個後台服務,長期進行某項任務,使用startService;

(2)僅想與後台服務進行通訊,使用bindService;

(3)如果一個Service又被啟動又被綁定,則該Service會一直在後台運行,既使用startService,又使用bindService。

首先不管如何調用,onCreate始終只會調用一次。對應startService調用多少次,Service的onStartCommand方法便會調用多少次。Service的終止,需要unbindService和stopService同時調用才行。

不管startService與bindService的調用順序,如果先調用unbindService,此時服務不會自動終止,再調用stopService之後,服務才會終止;如果先調用stopService,此時服務也不會終止,

而再調用unbindService或者之前調用bindService的Context不存在了(如Activity被finish的時候)之後,服務才會自動停止。

  • 對比

(1) Service 與 Thread的區別

 

註:一般會將 Service 和 Thread聯合使用,即在Service中再建立一個子線程(背景工作執行緒)去處理耗時操作邏輯

(2) Service和IntentService的區別

 

  •  執行個體

Android 開發中Service完全解析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.