Android關於Service的幾點理解

1、Service運行在系統的主線程中,所以不要在service中直接執行一些耗時的操作,如果需要可以另起線程執行。

2、Service有它自己的生命週期,用startService的方法啓動,生命週期爲onCreate->onStart->onDestroy;

用bindService的方法啓動,生命週期爲onCreate->onBind->onDestroy。

3、用startService啓動,service的生命週期不依賴與啓動他的組件的生命週期,也就是說即使啓動他的組件銷燬了,service也不一定銷燬,如果想要讓service被銷燬的機率更低可以調用service的setForground方法讓service處於前臺;此時,如果再啓動一次service,如果service未銷燬那麼會執行onStart方法,如果銷燬了,會執行onCreate->onStart。

4、用bindService啓動,service的生命週期依賴與啓動他的組件的生命週期,也就是說啓動他的組件銷燬了,service也會跟着銷燬,如果要主動停止服務可以調用unbindService。

5、startService和bindService可以結合使用,以實現service一直在後臺運行,其他組件又可以和他交互的需要,具體做法是先startService在bindService。

6、如果要停止startService啓動的服務可以在外部調用stopService,也可以在服務內部調用stopSelf。


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