我需要在後臺運行一個服務,而它一直被Android殺死我需要一次又一次地啓動它。由於某些編程目的,我需要知道該服務是否正在運行。那是因爲我將同時啓動第二個服務,並且它將啓動方法保持兩次。Android:我怎麼能知道一個服務正在運行,而它是由AlarmManager啓動的
到目前爲止,我已經試過這樣:
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if (NotificationService.class.getName().equals(
service.service.getClassName())) {
return true;
}
}
return false;
}
但只要我閱讀時,我的服務已啓動與
startService(Intent);
這是唯一可能的而且因爲我開始我的服務與AlarmManager每2分鐘,例如我不知道如何檢查服務是否正在運行。也許如果你有一個想法,我可以如何避免兩次或更多的服務啓動方法,我會很滿意。
「我需要在後臺運行一個服務,而它一直由Android打死我需要一次又一次啓動」 - 理想情況下,你會不會嘗試必須在一個永恆的服務第一名。 「那是因爲我將同時啓動第二個服務,並且它會啓動兩次啓動方法」 - 這應該是不可能的,因爲只能有一個運行的服務實例。 – CommonsWare
我認爲你需要得到你發送給接收者的報警號,這是真的嗎? – Talha
爲什麼每兩分鐘開始一次服務?你不能有長時間運行的服務來實現定時功能嗎? – Jayp