作业计划程序如何知道作业是否失败以重试?



我有一个使用安卓JobScheduler安排的定期工作

val serviceComponent = ComponentName(context, BackupJobService::class.java)
val builder = JobInfo.Builder(0, serviceComponent)
builder.setPeriodic(thirtyMins)
val jobScheduler = context.getSystemService(JobScheduler::class.java)
val job = builder.build()
jobScheduler.schedule(job)

文档指出,失败作业的默认重试机制是指数退避。但是JobScheduler怎么知道BackupJobService成功还是失败呢?特别是在我的情况下,BackupJobService会产生一个JobIntentService来完成这项工作。

文档指出,失败作业的默认重试机制是指数退避。

实际上,它取决于重写方法onStopJob时的返回值以及调用方法jobFinished (JobParameters params, boolean wantsReschedule)的方式。如果您已经调用了具有wantsReschedulejobFinishedfalseonStopJobAndroid 返回false请不要重试您的工作。

在此处查看文档

最新更新