我添加本地服務我的MainActivity,在的onResume,我這樣做的onDestroy從未被稱爲
@Override
public void onResume() {
super.onResume()
boolean is_start = isMyServiceRunning(MyService.class)
if (is_start) {
bindMyService()
} else {
startMyService()
bindMyService()
}
}
在我的onPause只是簡單做了「unBindMyService」操作。
另外,我添加了Context.BIND_AUTO_CREATE標誌來綁定服務,結果很奇怪。
- 我可以看到的MyService的「的onCreate」和「onBind」與logcat的,這個進展順利
- 當我切換到另一個活動或應用程序,該「拆散」之稱,這是正確的!
- 當我「強行停止」設置中的服務時,服務的「onDestroy」被調用作爲響應,這沒問題。
- 當我從應用程序的「最近列表」中刪除應用程序時,並沒有調用服務的「onDestroy」,我可以解釋爲服務未終止。還行。
- 我無法解釋的是,4後,我又啓動了我的應用程序,我注意到服務的「onCreate」和「onBind」被調用,但沒有一個「onDestroy」服務。即使「is_start」爲真,服務也會在沒有調用「onDestroy」的情況下再次創建。
那麼4到5之間發生了什麼?該服務還活着還是已經死了?
發表更多代碼。方法中有什麼是MyServiceRunning,startMyService和bindMyService? – Okas 2014-09-26 11:42:57
smallzhan ...我已經執行所有的服務案例... 我發現了幾件事情。 onething我想說的是,一旦停止服務()被執行,ondestroy服務可以被調用。 – GvSharma 2014-09-26 12:09:25
可能5發生在與可能在沒有警告的情況下被殺死的4不同的進程中 - 檢查日誌中()的進程ID。 – 2014-09-26 12:13:37