一,service的啟動(dòng)方式
在討論如何停止service之前,我們需要回顧一下啟動(dòng)service的兩種方式。
1.1 startservice
生命周期:onCreate()->onStartCommand()->Service running->onDestroy()
1.2 bindservice
生命周期:onCreate()->onBind()->Clients are bound to service->onUnbind()->onDestroy()
二,停止service的幾種場(chǎng)景:
2.1 單一啟動(dòng)方式下如何停止service
2.1.1 只調(diào)用了startservice
(1)startServic:調(diào)用onCreate()->onStartCommand()
(2)stopService:調(diào)用onDestory()
2.1.2 只調(diào)用了bindservice
(1)bindservice:調(diào)用onCreate()->onBind()
(2)unbindService:調(diào)用onUnbind()->onDestroy()
2.2 混合啟動(dòng)方式如何停止service
2.2.1 先stopService,再u(mài)nbindService
(1)startServic:調(diào)用onCreate()->onStartCommand()
(2)bindService:調(diào)用onBind()
(3)stopService:沒(méi)有調(diào)用onDestory() Service仍然在運(yùn)行!
(4)unbindService:調(diào)用onUnbind()->onDestory() 此時(shí)Service關(guān)閉!
2.2.2 先unbindService,再stopService
(1)startServic:調(diào)用onCreate()->onStartCommand()
(2)bindService:調(diào)用onBind()
(3)unbindService:調(diào)用onUnbind() Service仍然在運(yùn)行!
(4)stopService:調(diào)用onDestory() 此時(shí)Service才關(guān)閉!