android - 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
来完成这项工作。
解决方案
文档说,失败作业的默认重试机制是指数回退。
实际上,它取决于您覆盖方法时的返回值onStopJob
和调用方法的方式jobFinished (JobParameters params, boolean wantsReschedule)
。如果您已经jobFinished
使用wantsReschedule
值调用false
或onStopJob
返回false
Android,请不要重试您的工作。
在这里检查文件
推荐阅读
- android - 无法使用 Purchase.Subscription:acknowledge 来确认订阅
- c++ - ifstream 只打印数组中的第一行
- r - R - 根据数据框名称中的模式在列表中绑定多个数据框
- c# - 如何将 C++ 非托管 DLL 转换为 C#
- python-3.x - 使用 Beautifulsoup 将带有 HTML 标签的字符串解析为嵌套列表
- javascript - 从内容脚本模拟放置事件时,放置事件 dataTransfer 未定义
- docker - 特使中的重定向
- ios - 如何修复自定义按钮在 SwiftUI(IOS) 中的交互?
- c# - 如何将参数从 c# 传递给 python 脚本构造函数?
- python-3.x - 不支持使用 ODBC 和 Apache Ignite 的 Python 字符串到 varchar 映射