首页 > 解决方案 > 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”以包括一个标志,表明这是否是重试尝试,但问题是即使我更新了作业参数,它也不会在下次运行时保存。

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

标签: androidjobservice

解决方案


推荐阅读