【发布时间】:2016-07-11 07:27:47
【问题描述】:
我想在每天的特定时间启动 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 之外,将不胜感激。
【问题讨论】:
标签: android android-alarms android-jobscheduler