Как перезапустить убитую службу автоматически?

Когда служба была убита, как ее автоматически перезапустить?

иногда даже без вызова onDestroy()

3 ответа

Я унаследовал IntentService, поэтому мне пришлось быть нежным. Это сработало для меня, когда я переопределил onStartCommand(), но

public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); return START_STICKY;
}

То есть пусть родитель делает то, что должен, и возвращает START_STICKY.


Переопределяет onStartCommand() и возвращает START_STICKY или START_REDELIVER_INTENT (зависит от ваших потребностей) как возвращаемое значение. После этого система перезагрузит вашу службу, пока вы явно не остановите службу.

http://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT

http://developer.android.com/reference/android/app/Service.html#START_STICKY


Если ваш сервис был убит, система попытается перезапустить его позже. Прочтите подробнее.

licensed under cc by-sa 3.0 with attribution.