JobInfo.Builder中的方法“setRequireDeviceIdle”究竟是如何工作的?根据我在Android文档(https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setRequiresDeviceIdle(boolean))中所阐述的内容,它应该保证只有在没有与设备交互的情况下才会启动作业。
我的经历与众不同:
private void scheduleRestartJob(){
ComponentName mServiceComponent = new ComponentName(this, RelaunchAppJobService.class);
JobInfo.Builder builder = new JobInfo.Builder(1002, mServiceComponent);
builder.setRequiresDeviceIdle(true);
builder.setPersisted(true);
builder.setOverrideDeadline(10000);
mJobScheduler.schedule(builder.build());
}
如果我退出我的应用程序并开始使用另一个应用程序,那么无论我是否处于活动状态都无关紧要,因为作业将始终在10秒后运行。
答案 0 :(得分:0)
如果我退出我的应用程序并开始使用其他应用程序,那么无论我是否活动都没关系,因为作业将始终在10秒后运行。
这是因为这一行:
builder.setOverrideDeadline(10000);
即使未满足其他要求,此工作也将在此截止日期下运行
(强调补充)
因此,您的工作将在设备空闲或10秒后运行,以先到者为准。很有可能,10秒钟将首先消失。