Android Service兩種啓動方式及 生命週期

onStart()後調用bindService該service則調用onBind(),調用onBind以後調stopService將無法釋放該service必須再調unbindService才觸發onUnbind()-->onDestroy()

啓動方式

1. 使用startService啓動服務的生命週期方法:

使用這種方法啓動一個Service,在Service啓動後該Service和啓動該Service的Activity就沒有關係了。但是這種發放啓動的Service不能和Activity進行交互。

通常情況下使用startService調用的Service生命週期方法爲:onCreate()->onStartCommand()。

其中多次調用startService只調用一次onCreate(), 但可以多次調用onStartCommand().

當服務需要退出時,調用stopService,就會調用Service的onDestroy()方法。

2.使用bindService啓動服務的生命週期方法:

使用這種方法啓動的Service是和調用者Activtiy同生命的,當Activtiy退出時,服務也同時銷燬了。這種方法啓動的Service能夠和Activity進行交互。

調用bindService啓動服務,Service生命週期方法爲:onCreate()->onBind()

多次調用bindService並不會多次調用onBind(), 即onCreate()和onBind()都是隻被調用一次。

當Activity退出是,該Service銷燬,調用:onUnbind()->onDestroy();

生命週期                                                                                           



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