我想每天在特定时间启动 JobScheduler ,并在 3 小时后完成。
我有每 20 分钟和 3 小时触发一次作业的部分,但是在 JobInfo.Builder 类中没有在确切时间开始作业的选项。
查看 JobInfo.Builder类概述,那里没有设置启动 JobScheduler 的时间。
显然,我不想整天运行它,并检查时间是否匹配,这将消耗比需要更多的电池,并且是糟糕的编程。
我正在考虑在我指定的时间发出警报并触发这项工作,但这似乎有点矫枉过正。
JobInfo.Builder builder = new JobInfo.Builder(NIGHT_SYNC_JOB_ID,
new ComponentName(context, NightSyncDataJobService.class));
//Job starts at 11pm, and ends at 2am. Running every 20 minutes.
builder.setPersisted(true); //Job scheduled to work after reboot
builder.setPeriodic(Consts.ONE_MINUTE * 20);
JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(builder.build());
如果您对该问题有任何其他解决方案,除了触发此 JobScheduler 的 AlarmManger 之外,将不胜感激。