【Android】android四大組件之Service使用方法總結

兩種創建服務例子

Service生命週期

 

  • Start方式

服務需要註冊,像靜態廣播接收器,在後臺運行,但需要自啓

 

 

服務實例只會有一個,所以startService()->onCreat()只會調用一次,再點擊只調用onStartCommand(),stopService()->onDestroy()

 

 

 

  • Bind方式

bind啓動方式

bindService(*Intent*,*ServiceConnection對象或Null*,)

unbindService(*ServiceConnection對象或Null*)只能一次,多按會報解綁定異常錯誤,綁定的服務必須解綁定,因爲和啓動源聯繫了

 

Service內部方法

 

ServiceConnection類

 

 

 

bindService()方法:服務與活動聯繫更加緊密,可以調用服務中方法

任何一個服務在整個應用程序範圍內都是通用的,可以和任何一個其他活動綁定,綁定後還可獲得相同的Binder實例

 

IntentService類:IntentService是繼承於Service並處理異步請求的一個類,在IntentService內有一個工作線程來處理耗時操作,啓動IntentService的方式和啓動傳統Service一樣,同時,當任務執行完後,IntentService會自動停止,而不需要我們去手動控制。另外,可以啓動IntentService多次,而每一個耗時操作會以工作隊列的方式在IntentService的onHandleIntent回調方法中執行,並且,每次只會執行一個工作線程,執行完第一個再執行第二個,以此類推

所有請求都在一個單線程中,不會阻塞應用程序的主線程(UI Thread),同一時間只處理一個請求。那麼,用IntentService有什麼好處呢?首先,我們省去了在Service中手動開線程的麻煩,第二,當操作完成時,我們不用手動停止Service
 

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