Полагаю, это решение несколько грязное, но вы можете использовать новый Сервис, который начинается с START_STICKY
и установить для всех других сервисов значение START_NOT_STICKY
.
Затем вы можете использовать новый сервис дляЗапустите все другие службы (хотя это не обязательно).На самом деле это простая реализация, поскольку вы можете передать все намерения службе, которая должна быть запущена.
Затем вы можете добавить широковещательную рассылку для всех служб OnDestroy()
, чтобы сообщить новой службе, что один изстарый был убит системой.Вы также можете передать старое начальное намерение через OnDestroy()
, чтобы он был перезапущен.
В случае, если ваша новая служба будет убита, вы можете проверить после перезапуска, была ли убита какая-либо из других служб, а также расставить приоритетыперезапуск.