首页 > 解决方案 > JobScheduler 如何知道作业是否已失败以使其重试?

问题描述

我有一个使用android安排的定期工作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产生 aJobIntentService来完成这项工作。

标签: androidandroid-serviceandroid-jobscheduler

解决方案


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

实际上,它取决于您覆盖方法时的返回值onStopJob和调用方法的方式jobFinished (JobParameters params, boolean wantsReschedule)。如果您已经jobFinished使用wantsReschedule值调用falseonStopJob返回falseAndroid,请不要重试您的工作。

在这里检查文件


推荐阅读