1
我爲我的應用程序提供前臺服務,該服務必須運行整個時間並且永不停止。雖然我測試了幾次,但在3-4天后,Android決定停止它,並且再也不會重新啓動它,並且在我的活動中,如果服務正在運行,並且它沒有啓動它。 即使服務沒有啓動,我也無法調試它,因爲這不是偶然發生的。 這是我的支票,有沒有錯嗎?由Android停止的前臺服務以後不會重新啓動
if (!isMyServiceRunning(MyService.class)) {
startService(new Intent(this, MyService.class));
}
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
我所說的活動)中的onResume此檢查(和活動開始時,我不能只是運行它每次,因爲我有一個不斷運行的線程的服務,這將讓不止一個例如,如果多次啓動...
所以這裏就是我想: 要麼有更可靠的方式來檢查的服務,如果其運行 或 只需啓動該服務每次活動開始時間,防止出現問題,並且它內部的線程必須總是隻有一個實例(我已經聲明爲靜態)
你需要知道什麼? – 2014-12-13 09:30:21
你可以粘貼啓動服務的代碼嗎? – 2014-12-13 09:30:57
你的意思是onStartCommand方法嗎? – 2014-12-13 09:38:10