1. 程式人生 > >Android Service 兩種啟動方式的區別

Android Service 兩種啟動方式的區別

最近在debug android service destory的bug,網上找了service相關的知識,startservice和bindservice都可以啟動service,知道這兩種方式的區別還是很有作用的。

Android Service 生命週期可以促使移動裝置的創新,讓使用者體驗到最優越的移動服務,只有broadcast receivers執行此方法的時候才是啟用的,當 onReceive()返回的時候,它就是非啟用狀態。

如果沒有程式停止它或者它自己停止,service將一直執行。在這種模式下,service開始於呼叫Context.startService() ,停止於Context.stopService

(). service可以通過呼叫Android Service 生命週期() 或 Service.stopSelfResult()停止自己。不管呼叫多少次startService() ,只需要呼叫一次 stopService() 就可以停止service

可以通過介面被外部程式呼叫。外部程式建立到service的連線,通過連線來操作service。建立連線調開始於Context.bindService(), 結束於Context.unbindService(). 多個客戶端可以繫結到同一個service,如果service沒有啟動, bindService() 可以選擇啟動它。


服務不能自己執行
,需要通過呼叫Context.startService()或Context.bindService()方法啟動服務。這兩個方法都 可以啟動Service,但是它們的使用場合有所不同。使用startService()方法啟用服務,呼叫者與服務之間沒有關連,即使呼叫者退出了,服 務仍然執行。使用bindService()方法啟用服務,呼叫者與服務繫結在了一起,呼叫者一旦退出,服務也就終止,大有“不求同時生,必須同時死”的 特點。