Установить планировщик заданий при включенном экране (устройство НЕ находится в режиме ожидания)?
Я знаю что метод setRequiresDeviceIdle(boolean requiresDeviceIdle)
заставляет задание запускаться, когда устройство находится в режиме ожидания.
То, что я хочу, - это наоборот, я хочу, чтобы работа выполнялась, когда устройство не находится в режиме ожидания (экран включен, а пользователь использует телефон), и я знаю, что setRequiresDeviceIdle(false)
не делает работу, потому что говорит "false
"означает, что это не требуется, поэтому он будет работать, когда он простаивает, а когда нет.
1 ответ
Это невозможно через JobScheduler
, Если вы хотите, чтобы поведение триггера основывалось на включении экрана, вы должны постоянно работать (скорее всего, в качестве службы переднего плана) и программно регистрировать BroadcastReceiver
слушая ACTION_SCREEN_ON
,
Очевидно, что это требует большого объема памяти и является ужасной идеей для общего состояния системы, поэтому она не поддерживается JobScheduler
(не говоря уже о значительном давлении памяти, уже присутствующем во время ACTION_SCREEN_ON
из-за того, что это было одним из условий выхода из легкой дозы Android 7.0).