我有一个使用安卓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)
的方式。如果您已经调用了具有wantsReschedule
值jobFinished
false
或onStopJob
Android 返回false
请不要重试您的工作。
在此处查看文档