Библиотека классов и тестовое приложение к ней.
Задача:
Создание кода, способного поддерживать активность (препятствовать остановке его операционной системой)
пок приложение находится в фоне, по возможости игнорируя doze mode и другие оптимизации экономии
питания Android систем с автоматическим перезапуском приложения при его закрытии системой или
перезагрузкой устройства.
Для активации режима "выживания приложения" достаточно добавить в onCreate() Application класса следующий код: LifeKeeper lifeKeeper = LifeKeeper.getInstance();
lifeKeeper.start(this);
Дополнительно можно, к примеру, инициировать для последующего обзора через observeForever лайфдаты полученные методом lifeKeeper.subscribeOnPeriodicEvents(), или установить слушатели на вырабатываемые регулярные события.
Протестировано на Samsung SDK level 30 - обеспечивается "незасыпание" фоновых процессов в среднем более чем на 3 минуты при обычной работе, и эпизодические перерывы не более 5-10-20 минут в Doze mode.
Поддерживается уровень SDK 19-31. Работа на аппаратах с агрессивной оптимизацией питания китайских производителей не тестировалась и может быть проблемной