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 中获得的“JobParameters”(https://developer.android.com/reference/android/app/job/JobService#onStartJob(android.app.job.JobParameters) 以包含一个标志,说明这是否是重试尝试,但问题是即使我更新了作业参数,下次运行时不保存。

任何帮助将不胜感激。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)