service的生命週期

2021-05-27 21:10:53 字數 1117 閱讀 1351

public void onclick(view v)

else if (v==unbind)

else if (v==start)

else

}

第一次執行startservice 會執行 oncreate -> onstartcommand -> onstart

第二次執行 startservice 不會呼叫 oncreate 也不會生成新的例項,但是會再次呼叫 onstartcommand -> onstart (在onstart裡new timer()會導致多個timer執行緒同時存在)

stop執行後 呼叫 ondestroy 服務停止後 執行stop不會有反應。

執行bind      oncreate(第一次建立服務例項,但不會開始執行服務,即不呼叫onstart)->onbinder->serviceconnection      

unbind 呼叫 onunbinder->ondestroy 沒有例項的時候會崩

private serviceconnection conn = new serviceconnection()

@override

public void onserviceconnected(componentname name,ibinder service)

};

public class service extends service

@override

public boolean onunbind(intent intent)

@override

public void ondestroy()

@override

public void oncreate()

@override

public void onstart(intent intent , int startid)

@override

public int onstartcommand(intent intent,int flags,int startid)

}

最後注意要把 service 加在manifest裡

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 如果...