gpt4 book ai didi

android - Firebase JobDispatcher-Scheduled 作业在设备重启时丢失

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:42 28 4
gpt4 key购买 nike

我正在使用 Firebase-JobDispatcher .我已经安排了一些工作,如果我保持设备开关,它工作正常。但是如果我重新启动我的设备,那么计划的工作不会执行或者它不会被重新安排?我已经使用了 setLifetime(Lifetime.永远)。设备重启时作业仍然丢失。下面是我使用的代码-

Job myJob = dispatcher.newJobBuilder()
.setService(MyJobService.class)
.setTag("DataSend")
.setRecurring(false)
.setLifetime(Lifetime.FOREVER)
.setTrigger(Trigger.executionWindow(0, 0))
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.setConstraints(Constraint.ON_ANY_NETWORK)
.setExtras(myExtrasBundle)
.build();

最佳答案

设置Lifetime.FOREVER 后,您已在AndroidManifest.xml 文件中添加以下权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

下面是安排工作的代码

Job job = jobDispatcher.newJobBuilder()
.setService(MyJobService.class)
.setTrigger(Trigger.executionWindow(windowStartTime, 3600))
.setTag(PENDING_AUTH_JOB) //identifier for the job
.setRecurring(false) // should not recur
.setLifetime(Lifetime.FOREVER) // should persist device reboot
.setReplaceCurrent(false) // no need to replace previous job
.setConstraints(Constraint.ON_ANY_NETWORK) // set network availability constraint
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.build();
try {
jobDispatcher.mustSchedule(job);
} catch (FirebaseJobDispatcher.ScheduleFailedException e) {
if (retryCount-- > 0) {
scheduleJob(0);
}
}

要检查的另一件事是不要将执行窗口设置为 0,0。始终将 windowEnd 设置为大于 windowStart

关于android - Firebase JobDispatcher-Scheduled 作业在设备重启时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060744/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com