0

我正在android中开发一个每周调度程序,我对使用evernote android-job在特定时间(例如下午4点)触发的定期工作(例如每周一次)很感兴趣

我读过这篇文章

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()”

有人能帮我吗?

4

2 回答 2

2

setExact() 和 setPeriodic() 是两个不同的特性,它们不能耦合。如果您想定期使用 setExact,则必须在先前设置的作业运行后再次以编程方式安排作业。

于 2017-07-21T10:32:23.583 回答
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;
 }
}

参考链接

于 2018-07-10T04:20:54.347 回答