1、Android service的作用:
service通常是用來處理一些耗時操作,或后台執行不提供用戶交互界面的操作,例如:下載、播放音樂。
2、Android service的生命周期:
service生命周期沒有activity生命周期那么復雜,它只有onCreate()、onStart()、onDestroy()三個方法,當第一次啟動Service時,先后調用了onCreate(),onStart()這兩個方法,當停止Service時,則執行onDestroy()方法,這里需要注意的是:如果Service已啟動,我們再次啟動程序調用該service時,不會在執行onCreate()方法,而是直接執行onStart()方法。
3、Android service的兩種啟動方式:
①、startService():同一應用在任意地方調用startService()方法都能啟動Service,然后系統會自動調用onCreate()、onStart(),這樣啟動的 Service 會一直運行在后台,直到 stopService() 或者 selfStop() 方法被調用。另外如果一個 Service 已經被啟動,其他代碼再想調用 startService() 方法,則不會執行 onCreate() 的,但會重新執行一次 onStart() 。
②、bindService():使用bindService()方法啟動時,service會和客戶端綁定起來,客戶端停止則service也會停止。
兩者區別:startService()與客戶端是否退出沒關聯關系,即使客戶端停止運行服務同樣會在后台運行,但bindService()是與客戶端綁定的,客戶端退出service也會自動停止。
4、Android后台服務保持機制:
利用Android系統廣播每分鍾一次,在系統廣播里每分鍾檢查一次Service的運行狀態,如果已經被結束了,就重新啟動service。