我有一個相當好奇的問題。我有一個無界限的服務,我打電話時使用下面的代碼從我的主要活動調用。服務不會被殺無論如何
//some code checks if the service is awake. if not then the code below is called
Intent serviceIntent = new Intent(this, SMS_Listener_Service.class);
startService(serviceIntent);
當一個新的短信進來經由定時器的服務等待3秒鐘,以確保內容觀察者已保存的數據到內部SMS分貝。之後它會打電話給一個intentservice來完成繁重的工作。
不知什麼原因,該服務有時會掛起,並停留在「重啓(見圖片)」
好奇的是,即使試圖強制停止在應用部分不工作的服務。它瞬間消失,然後再次出現相同的信息。在代碼中使用stopService不起作用,並且服務中的OnDestroy方法永遠不會被調用。唯一的辦法是重新啓動手機。
問題是,當它處於這種狀態時,它不起作用。(它的意思解析收到的短信)
我與Android 4.3
「在GALAXY NOTE 3運行此「
我懷疑Intentservice做的實際分析沒有完成,因此服務停止調用的調用從不會被調用。
我的問題是,有沒有強制一個intentservice已停止停止的方式?
這是在服務啓動命令的代碼
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
if (!blnAutoSyncisEnabled) {
stopSelf();
return 0;
} else {
return START_STICKY;
}
}
同一個問題的更詳細視圖這裏https://stackoverflow.com/posts/21077517/edit
作爲一個開始,我已經將服務中的所有代碼都包含在異常返回中的try catch中,以便服務可以優雅地停止自我 – KuriaNdungu