Предотвратить уничтожение службы Android ОС
Я создал сервис, который возвращает START_STICKY в onStartCommand. Однако через некоторое время я замечаю, что мое приложение было убито ОС.
Есть ли какой-либо метод / фрагмент кода, который я могу использовать, чтобы предотвратить уничтожение приложения операционной системой? Я знаю, что это может не подпадать под лучшие практики. Или есть какой-то другой метод, который мы можем использовать, например, неоднократно проверять, работает ли приложение, и запускать приложение, если это не так?
Ваше понимание этого очень ценится.
ура
2 ответа
Лучший способ остановить службу, убитую android - это создать постоянное уведомление. Это заставит Android поддерживать сервис любой ценой, потому что он отображает что-то видимое.
Вы не можете помешать вашему процессу быть убитым. Если ОС решит убить ваши процессы, вы будете убиты. Период.
START_STICKY
не будет делать никакой магии, потому что другой ответ неправильно говорит - документы об этом значении говорят:
Если процесс этой службы прекращается во время ее запуска (после возврата из onStartCommand(Intent, int, int)), то оставьте его в запущенном состоянии, но не сохраняйте это доставленное намерение. Позже система попытается заново создать сервис. Поскольку он находится в запущенном состоянии, он гарантирует вызов onStartCommand (Intent, int, int) после создания нового экземпляра службы; если нет ожидающих команд запуска, которые будут доставлены в службу, она будет вызываться с нулевым объектом намерения, поэтому вы должны позаботиться, чтобы проверить это.