service生命週期
使用context.startservice() 啟動service
其生命週期為context.startservice() ->oncreate()- >onstart()->service running-->context.stopservice() | ->ondestroy() ->service stop
如果service還沒有執行,則android先呼叫oncreate()然後呼叫onstart();
如果service已經執行,則只呼叫onstart(),所以乙個service的onstart方法可能會重複呼叫多次。
stopservice的時候直接ondestroy,
如果是呼叫者自己直接退出而沒有呼叫stopservice的話,service會一直在後台執行。
該service的呼叫者再啟動起來後可以通過stopservice關閉service。
所以呼叫startservice的生命週期為:oncreate --> onstart(可多次呼叫) --> ondestroy
對於bindservice()啟動service會經歷:
context.bindservice()->oncreate()->onbind()->service running-->onunbind() -> ondestroy() ->service stop
onbind將返回給客戶端乙個ibind介面例項,ibind允許客戶端**服務的方法,比如得到service執行的狀態或其他操作。
這個時候把呼叫者(context,例如activity)會和service繫結在一起,context退出了,
srevice就會呼叫onunbind->ondestroy相應退出。
所以呼叫bindservice的生命週期為:oncreate --> onbind(只一次,不可多次繫結) --> onunbind --> ondestory。
一但銷毀activity它就結束,如果按home把它放到後台,那他就不退出。
補充:
在service每一次的開啟關閉過程中,只有onstart可被多次呼叫(通過多次startservice呼叫),
其他oncreate,onbind,onunbind,ondestory在乙個生命週期中只能被呼叫一次。
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有兩種啟動方式 l context.startservice 當它第一次被呼叫時,service被建立執行oncreate 方法,隨後即呼叫onstartcommand 方法。如果是以這種方式啟動,那麼它會一直執行,不論是否有呼叫者繫結,直到context.stopservice 被呼...