Ответ
Doze mode — это механизм энергосбережения в Android (начиная с версии 6.0), который уменьшает потребление батареи, когда устройство неактивно.
Как работает:
- Активируется после длительного простоя (без движения, экран выключен).
- Ограничивает фоновые процессы, сетевые запросы, откладывает задачи JobScheduler/AlarmManager.
- Периодически выходит в «окна поддержки» (maintenance windows) для выполнения отложенных задач.
Что делать разработчику:
- Использовать
JobScheduler/WorkManagerдля критичных фоновых задач. - Для срочных событий —
AlarmManager.setExactAndAllowWhileIdle(). - Проверять
PowerManager.isDeviceIdleMode().
val powerManager = getSystemService(POWER_SERVICE) as PowerManager
if (powerManager.isDeviceIdleMode) {
// Устройство в Doze — адаптируем логику
}