На StackOverFlow есть несколько похожих вопросов, но ни одно из решений не работает для меня
Проблема
Проблема в том, что только несколько устройств, таких как OnePlus иМ.И., Служба убивается, как только пользователь удаляет приложение из недавнего приложения.
Я читал, что эти OEM используют некоторые агрессивные стратегии для уничтожения служб.Я просто хочу знать, есть ли способ сохранить службу запущенной или запустить ее, как только она будет убита.
Что я хочу
Мне нужно запустить службукоторый будет постоянно отображать местоположение (24/7) в фоновом режиме (это приложение предназначено только для конкретных людей, поэтому не стоит беспокоиться о времени автономной работы).
То, что я пытался до сих пор:
1) Пытался запустить службу переднего плана.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(intent)
} else {
startService(intent)
}
также в методе onCreate службы, запущенной с уведомлением
@Override
public void onCreate() {
Log.i("Service", "onCreate");
startForeground(NOTIFICATION_ID, getnotification());
}
2) Попытка возврата START_STICKY
в onStartCommand
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
initLocationClient();
initLocationSyncThread();
return START_STICKY;
}
3) Попытка возобновления обслуживания в onDestroy
и onTaskRemoved
, но они не получают вызов.
4) Попытка привязать службу
5) Я могу планировать диспетчер тревог и часто запускать службу, но магазин воспроизведения предупредит, что наше приложение использует диспетчер тревог слишком часто, и это плохопрактикаИ теперь есть способ с помощью workmanager планировать менее 15 минут, и он по-прежнему не гарантированно будет запускаться через 15 минут.
Так есть ли способ продолжить работу службы, отличной от указанных выше?