android - JobScheduler - 确定 JobService 是否由于重新调度或首次运行而正在运行
问题描述
我有一个工作服务(https://developer.android.com/reference/android/app/job/JobService)需要查询后端以获取完成工作所需的一些数据。如果由于某种原因,作业无法查询数据,我想重新安排服务以在以后运行。
我发现我可以通过将“true”传递给“jobFinished”(https://developer.android.com/reference/android/app/job/JobService#jobFinished(android.app. job.JobParameters,%20boolean)在“onStartJob”中调用,但问题是我只想重新安排一次工作。如果第二次失败,那么我只想完成工作而不重新安排。
我遇到的问题是,我无法确定作业是否由于被重新安排而正在运行(因此我不想重新安排),而不是作为作业服务的初始运行。
我的一个想法是更新我在 onStartJob ( https://developer.android.com/reference/android/app/job/JobService#onStartJob(android.app.job.JobParameters)中获得的“JobParameters”以包括一个标志,表明这是否是重试尝试,但问题是即使我更新了作业参数,它也不会在下次运行时保存。
任何帮助将不胜感激。谢谢!
解决方案
推荐阅读
- python - Python:更改:如何使局部变量成为全局变量?
- variables - 如何从单个玉混合中调用不同的变量?
- python - Pandas 中的滚动百分比排名
- java - 线程组调用中断后离开僵尸线程
- tcl - 如何根据工作区大小将 tcl/tk 窗口居中?
- html - 字符串或二进制数据将被截断。努力寻找问题一段时间,尝试了不同的东西,但仍然不确定
- macos - macOS:如何正确安装 JavaFX 以运行 mqtt-spy?
- .net - 尝试使用 LINQ MVC 在控制器中使用多 EF 模型?
- c# - 建模一对多关系-模型与视图模型
- python - 未获取 json 属性的 JSON 的完整属性值