EverNote andoid-job:我如何每周一次在特定时间开始工作?

时间:2017-06-09 15:37:25

标签: evernote android-jobscheduler android-job

我正在开发android中的每周调度程序,我对定期作业(例如每周一次)感兴趣,该作业在特定时间(例如下午4点)使用 evernote触发机器人作业

我已阅读此帖

https://github.com/evernote/android-job/blob/master/FAQ.md#how-can-i-run-a-job-at-a-specific-time-once-a-day

我每天都可以每天做一份工作,但这不是我的理由。 如果我设置

new JobRequest.Builder( MY_TAG ) .setExact( TimeUnit.HOURS.toMillis( 16 ) + TimeUnit.MINUTES.toMillis( 0 )) .setPeriodic( TimeUnit.DAYS.toMillis( 7 ), TimeUnit.MINUTES.toMillis(5) ) .setPersisted(true) .build() .schedule();

我有这个错误

  

“无法在定期作业上调用setExact()”

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

setExact()和setPeriodic()是两个截然不同的功能,它们无法耦合。 如果要定期使用setExact,则必须在先前设置的作业运行后以编程方式再次计划作业。

答案 1 :(得分:0)

尝试这个家伙。

public final class MyDailyJob extends DailyJob {
public static final String TAG = "MyDailyJob";
public static void schedule() {
    // schedule between 1 and 6 AM
    DailyJob.schedule(new JobRequest.Builder(TAG), TimeUnit.HOURS.toMillis(1), TimeUnit.HOURS.toMillis(6));
}

@NonNull
@Override
protected DailyJobResult onRunDailyJob(Params params) {
    return DailyJobResult.SUCCESS;
 }
}

参考link