每次調(diào)用startService(Intent)的時(shí)候,都會(huì)調(diào)用該Service對(duì)象的onStartCommand(Intent,int,int)方法,這個(gè)方法return 一個(gè)int值,return 的值有四種:
START_STICK
當(dāng)Service因內(nèi)存不足而被系統(tǒng)kill后嗦随,一段時(shí)間后內(nèi)存再次空閑時(shí)傲须,系統(tǒng)將會(huì)嘗試重新創(chuàng)建此Service,一旦創(chuàng)建成功后將回調(diào)onStartCommand方法宫屠,但其中的Intent將是null黑低,除非有掛起的Intent鳍侣,如pendingintent第股,這個(gè)狀態(tài)下比較適用于不執(zhí)行命令应民、但無限期運(yùn)行并等待作業(yè)的媒體播放器或類似服務(wù)。
START_NOT_STICKY
“非粘性的”夕吻。使用這個(gè)返回值時(shí)诲锹,如果在執(zhí)行完onStartCommand后,服務(wù)被異常kill掉涉馅,系統(tǒng)不會(huì)自動(dòng)重啟該服務(wù)归园。
START_REDELIVER_INTENT
重傳Intent。使用這個(gè)返回值時(shí)控漠,如果在執(zhí)行完onStartCommand后蔓倍,服務(wù)被異常kill掉悬钳,系統(tǒng)會(huì)自動(dòng)重啟該服務(wù)盐捷,并將Intent的值傳入。
START_STICKY_COMPATIBILITY
START_STICKY的兼容版本默勾,但不保證服務(wù)被kill后一定能重啟碉渡。