我已经通过 firebase 作业调度程序设置了一个作业,该作业应在 X 小时后执行。当应用程序打开或在后台运行时,它可以正常工作,但在应用程序关闭时无法正常工作。
太多人遇到过这个问题,即使这样的问题仍然在 Github 中公开,但我没有找到解决方案。
这是我的代码:
public void setupJob(){
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
final int periodicity = (int) TimeUnit.HOURS.toSeconds(3);
final int toleranceInterval = 30;
Job myJob = dispatcher.newJobBuilder()
.setService(MyScheduler.class)
.setTag("MY_JOB_TAG")
.setRecurring(false)
.setLifetime(Lifetime.FOREVER)
.setTrigger(Trigger.executionWindow(periodicity, periodicity + toleranceInterval))
.setReplaceCurrent(false)
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.build();
dispatcher.mustSchedule(myJob);
}
制作 .setRecurring(true) 会触发它,但只有在您打开应用程序时才会触发它,然后即使应用程序关闭,它也会重复并正常工作。
请帮忙!