使用 Firebase 作业调度程序每周安排一个任务
Schedule a task weekly using Firebase job dispatcher
已尝试使用作业调度程序按小时安排重复性任务。已经为该问题编写了代码片段,但不确定这是否是正确的实现。
代码段用于在每周一的 11 点安排任务。
对此或其他可能解决方案的任何更正都会有很大帮助。
Calendar c1 = Calendar.getInstance();
c1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c1.set(Calendar.HOUR_OF_DAY, 11);
c1.set(Calendar.MINUTE, 0);
c1.set(Calendar.SECOND, 0);
c1.set(Calendar.MILLISECOND, 0);
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(Splash_onboarding.this));
Job myJob = dispatcher.newJobBuilder()
.setService(ScheduledNotificationService.class)
.setTag(dispatcherTag)
.setRecurring(true)
.setLifetime(Lifetime.FOREVER)
.setTrigger(Trigger.executionWindow(Math.round(c1.getTime().getTime() / 1000), (Math.round(c1.getTime().getTime() / 1000)) + 60))
.setReplaceCurrent(true)
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.build();
dispatcher.mustSchedule(myJob);
我认为您没有正确实施 Firebase JobDispatcher
Trigger.executionWindow()
在这里,你写下你的作业在安排你的作业后执行了多少时间。有关详细信息,请参阅:
您可以通过使用 executionWindow(获取下周一的时间)安排您的第一个非重复作业来解决您的问题 - System.currentTimeMillis() 然后在 JobService 中启动一个重复作业,其中 executionWindow 为 7 * 24 * 60 * 60.
已尝试使用作业调度程序按小时安排重复性任务。已经为该问题编写了代码片段,但不确定这是否是正确的实现。
代码段用于在每周一的 11 点安排任务。
对此或其他可能解决方案的任何更正都会有很大帮助。
Calendar c1 = Calendar.getInstance();
c1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c1.set(Calendar.HOUR_OF_DAY, 11);
c1.set(Calendar.MINUTE, 0);
c1.set(Calendar.SECOND, 0);
c1.set(Calendar.MILLISECOND, 0);
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(Splash_onboarding.this));
Job myJob = dispatcher.newJobBuilder()
.setService(ScheduledNotificationService.class)
.setTag(dispatcherTag)
.setRecurring(true)
.setLifetime(Lifetime.FOREVER)
.setTrigger(Trigger.executionWindow(Math.round(c1.getTime().getTime() / 1000), (Math.round(c1.getTime().getTime() / 1000)) + 60))
.setReplaceCurrent(true)
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.build();
dispatcher.mustSchedule(myJob);
我认为您没有正确实施 Firebase JobDispatcher
Trigger.executionWindow()
在这里,你写下你的作业在安排你的作业后执行了多少时间。有关详细信息,请参阅:
您可以通过使用 executionWindow(获取下周一的时间)安排您的第一个非重复作业来解决您的问题 - System.currentTimeMillis() 然后在 JobService 中启动一个重复作业,其中 executionWindow 为 7 * 24 * 60 * 60.