我知道方法 setRequiresDeviceIdle(boolean requiresDeviceIdle)
使作业在设备处于空闲模式时运行。
我想要的恰恰相反,我希望作业在设备未处于空闲模式(屏幕打开且用户正在使用手机)时运行并且我知道 setRequiresDeviceIdle(false)
没有完成这项工作,因为说“false
”意味着它不是必需的,所以它会在空闲时和不空闲时运行。
最佳答案
这无法通过 JobScheduler
实现。如果您希望基于屏幕打开触发行为,您必须不断运行(很可能是 foreground service )并以编程方式注册 BroadcastReceiver
监听 ACTION_SCREEN_ON
.
显然,这是内存密集型的,并且对整体系统健康来说是一个可怕的想法,这就是为什么 JobScheduler
不支持它的原因(更不用说 ACTION_SCREEN_ON
期间已经存在的显着内存压力因为它是出现 Android 7.0's light doze 的条件之一)。
关于android - 屏幕打开时设置作业调度程序(设备未闲置)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42427315/