Service

以前對Service總是有點不理解,官方指南上來就說什么Android四大組件之一,用來干后臺耗時操作。然后又說Service本身運行在主線程,如果需要耗時操作還需要在Service中創建Thread做耗時操作,bulabula(╯□╰)。既然Thread可以直接干后臺的工作我何苦在你Service中創建Thread干后臺工作。
我相信很多同學也都有這種疑問,其實之所以會有這種疑問,我覺得是大家被這句不負責任或者不嚴謹的話給洗腦了,只要一說到Service就拿這句話來介紹,來忽悠。
這句話其實含義有兩層:

  • Service是一個“組件”。在設計上跟另一個組件Activity的區別是它是看不見的,即如果需要看不見的(也就是它說的后臺的)操作,那就用Service吧。Android系統保證它的生命周期,它不會像Activity那樣只要界面消失了(back掉或者home掉)就有死掉的危險。
  • Service也只是一個組件,它不是Thread,它不重新創建線程,那些你在Service生命周期方法中做的操作都是運行在主線程的,除非你主動放到了其他線程中。很多事情你終歸還是要放到Thread中,但Thread放到Service中就能保證其運行周期。因為Android系統是可以保證Service生命周期的,也就可以保證Thread中long-running工作的穩定。另外Service生命周期Api又可以靈活的控制,從而靈活控制后臺工作的運行。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容