Android-приложение не работает в режиме ожидания
Я создаю приложение на Android Nougat, которое будет работать постоянно (в активном режиме и в режиме ожидания (когда телефон находится в спящем режиме)). Проблема в том, что примерно через 6 часов бездействия Android останавливает приложение.
Есть пользовательский интерфейс с активностью и сервисом. Сервис использует Bluetooth, сеть и запись в локальную базу данных. Примерно раз в минуту работает bluetooth и результат заносится в локальную базу данных. После этого данные в базе данных отправляются по сети. Служба работает в течение 6 часов, после чего ее работа прекращается. Уведомление отображается, но служба не работает. Метод manager.GetRunningServices также указывает, что служба запущена, но признаков службы нет.
Я перепробовал все, что можно:
- Сервис использует метод StartForeground
- использовал wakeLock - не помогает
- использовал белый список - продлевает на пару часов, но в итоге все равно сервис перестает работать
- Использовал AlarmManager. Он работает постоянно, но код в OnReceive указывает, что служба работает, но на самом деле это не так.
- Я запустил службу в отдельном процессе, чтобы он использовал как можно меньше памяти, но это также не помогает.
Может быть, у кого-то есть идеи по этому поводу?
Спасибо.
1 ответ
Вы можете перезапустить службу через 6 часов, используя планировщик заданий. Периодически перезапускать ваше приложение около 6 часов.