天天看點

android services啟動方式 官方文檔翻譯

services作為android應用的元件,主要充當長期在背景運作而不需要提供使用者界面的角色,另一個android元件可以啟動一個service,這個services将會繼續在背景運作即使使用者切換到另一個應用。此外,android 元件可以綁定services以及和services互動,甚至執行程序間通信。例如,services可以在背景處理網絡通信,播放音樂,或者和content provider互動。

services的啟動有兩種方式:

1.Started:

android 元件(例如 Activity)通過

startService()

啟動services,一旦通過這種方式啟動,services可以在背景無限期運作,即使啟動該services的元件被銷毀。通常service執行不傳回結果或者回調的單一操作,例如從網絡上傳或者下載下傳檔案,當操作完成,應該銷毀services。

2.Bound:

android 元件綁定services 通過

bindService()

啟動services,被綁定的services提供客戶-服務接口以便讓另外的元件與其互動,發送請求,傳回結果甚至進行程序間通信。隻要有其他的元件綁定services,該service會一直運作下去,多個android元件可以同時綁定一個services,當所有這些元件與services解除綁定,該services會銷毀。

第一種方式需要實作

onStartCommand()

方法,第二種方式需要實作

onBind()

不管你使用的是哪種方式,任何android元件可以調用service(甚至是别的項目的service),同樣任何元件可以調用activity--通過intent。然後你可以在清單檔案聲明service為私有的,禁止别的項目調用。

建立service類你需要繼承Service,然後實作下面幾個重要的回調方法:

1.

onStartCommand()

,當另一個元件以start方式啟動service,系統将會回調該方法,一旦該方法執行,service啟動并在背景運作,當工作完成你需要手動地通過

stopSelf()

或者

stopService()

方法停止,如果你隻想提供綁定 ,你不需要實作該方法。