Android之IntentService和Service

IntentService:異步處理服務,新開一個線程:handlerThread在線程中發消息,然後接受處理完成後,會清理線程,並且關掉服務。
IntentService有以下特點:
(1) 它創建了一個獨立的工作線程來處理所有的通過onStartCommand()傳遞給服務的intents。
(2) 創建了一個工作隊列,來逐個發送intent給onHandleIntent()。
(3) 不需要主動調用stopSelft()來結束服務。因爲,在所有的intent被處理完後,系統會自動關閉服務。
(4) 默認實現的onBind()返回null。
(5) 默認實現的onStartCommand()的目的是將intent插入到工作隊列中。

Service: Android中的Service是用於後臺服務的,當應用程序被掛到後臺的時候,問了保證應用某些組件仍然可以工作而引入了Service這個概念,那麼這裏面要強調的是Service不是獨立的進程,也不是獨立的線程,它是依賴於應用程序的主線程的,也就是說,在更多時候不建議在Service中編寫耗時的邏輯和操作,否則會引起ANR。

Service啓動:
(1)activity能進行綁定得益於service的接口,爲了支持service的綁定,實現onBind方法。
(2)service和activity的鏈接可以用ServiceConnection來實現。需要實現一個新的ServiceConnection,重寫onServiceConnection和onServiceDisconnected方法,一旦鏈接建立,就能得到service實例的引用。
(3)執行綁定,調用bindService方法,傳入一個選擇了要綁定的Service和Intent(顯示或隱式)和一個你實現了的ServiceConnection的實例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章