IntentService的特色

IntentService的特色線程

IntentService具備如下特色:並行

  • 1. IntentService自帶一個工做線程,當咱們的Service須要作一些可能會阻塞主線程的工做的時候能夠考慮使用IntentService。
  • 2. 咱們須要將要作的實際工做放入到IntentService的onHandleIntent回到方法中,當咱們經過startService(intent)啓動了IntentService以後,最終Android Framework會回調其onHandleIntent方法,並將intent傳入該方法,這樣咱們就能夠根據intent去作實際工做,而且onHandleIntent運行在IntentService所持有的工做線程中,而非主線程。
  • 3. 當咱們經過startService屢次啓動了IntentService,這會產生多個job,因爲IntentService只持有一個工做線程,因此每次onHandleIntent只能處理一個job。面多多個job,IntentService會如何處理?處理方式是one-by-one,也就是一個一個按照前後順序處理,先將intent1傳入onHandleIntent,讓其完成job1,而後將intent2傳入onHandleIntent,讓其完成job2…這樣直至全部job完成,因此咱們IntentService不能並行的執行多個job,只能一個一個的按照前後順序完成,當全部job完成的時候IntentService就銷燬了,會執行onDestroy回調方法。
相關文章
相關標籤/搜索