目錄
1、做用
2、生命週期
3、啓動方式
4、啓動方式
5、IntentService
Service是Android程序中四大基礎組件之一,它和Activity同樣都是Context的子類,只不過它沒有UI界面,是在後臺運行的組件。多線程
注意
onCreate
onstartCommand
onBind
onunbind
ondestroy異步
IntentService是繼承於Service並處理異步請求的一個類,在IntentService內有一個工做線程來處理耗時操做,啓動IntentService的方式和啓動傳統Service同樣,同時,當任務執行完後,IntentService會自動中止,而不須要咱們去手動控制。另外,能夠啓動IntentService屢次,而每個耗時操做會以工做隊列的方式在IntentService的onHandleIntent回調方法中執行,而且,每次只會執行一個工做線程,執行完第一個再執行第二個,以此類推。線程
Service自己存在兩個問題繼承
- Service不會專門啓動一條單獨的進程,Service與它所在應用位於同一個進程中。
- Service也不是專門一條新線程,所以不該該在Service中直接處理耗時的任務。
- 全部請求都在一個單線程中,不會阻塞應用程序的主線程(UI Thread),同一時間只處理一個請求。
- 不能夠直接和UI作交互。爲了把它執行的結果體如今UI上,須要把結果返回給Activity。
- 工做任務隊列是順序執行的,若是一個任務正在IntentService中執行,此時你再發送一個新的任務請求,這個新的任務會一直等待直到前面一個任務執行完畢纔開始執行。
- 正在執行的任務沒法打斷。
繼承IntentService類,並重寫onHandleIntent()方法便可。生命週期