方式一的生命週期:
通過startservice()開啟的service的生命週期是:
oncreate()-> onstart()-> (執行中)(stopservice執行) ondestroy()
方式二的生命週期:
通過bindservice()開啟的service的生命週期:
oncreate()->onbind()->{onserviceconnected(serviceconnection的方法)}(執行中)->(unbindservice執行)onunbind()->ondestroy();
方式三的生命週期:
startservice 和bindservice二者共同使用:
oncreate()->onstart()->onbind()->{onserviceconnected(serviceconnection的方法)}(執行中)
(unbindservice執行)onunbind()->(再次執行bindservice)onrebind()(onunbind返回true時才會呼叫)
注意:onunbind()返回false時,onbind和onunbind只會被呼叫一次(onrebind不會被呼叫但onserviceconnected(serviceconnection的方法)可以別多次呼叫;為true時,onrebind和onunbind會被呼叫多次(onbind建立時只會執行一次);
onunbind()返回false時生命週期如下:
oncreate()->onstart()->onbind()->{ 返回
}(執行中)
(執行unbindservice)->onunbind->(bindservice)(無呼叫)->(onserviceconnected(serviceconnection的方法被呼叫)->
(執行unbindservice)(無呼叫);
現象解釋:
bindservice可以呼叫onbind和onunbind,也就是說先繫結,再解綁(返回true)。如果繫結了,
但沒有成功解綁(返回false);是不允許再次繫結的;onrebind執行的條件也是當其能夠成功解綁;
onserviceconnected(serviceconnection的方法),是不管其有沒有解綁的,是可以多次執行的;
service生命週期
service 生命週期 注意 onstart方法是在android2.0之前的平台使用的.在2.0及其之後,則需重寫onstartcommand方法,同時,舊的onstart方法則不會再被呼叫.1 可以通過呼叫 context.startservice 啟動乙個 service 這可能會觸發 se...
Service生命週期
1 通過startservice開啟服務 oncreate onstartcommand 2 通過stopservice關閉服務 ondestroy 說明 如果在未stopservice的情況下,再去startservice,只會onstartcommand 3 通過bindservice開啟服務 ...
Service生命週期
service生命週期 使用context.startservice 啟動service 其生命週期為context.startservice oncreate onstart service running context.stopservice ondestroy service stop 如果...