Планировщик заданий — Определение того, выполняется ли служба заданий из-за изменения расписания или при первом запуске

#android #jobservice

Вопрос:

У меня есть служба занятости (https://developer.android.com/reference/android/app/job/JobService), которому необходимо запросить серверную часть для получения некоторых данных, необходимых для выполнения задания. Если по какой-либо причине задание не сможет запросить данные, я хотел бы перенести запуск службы на более позднее время.

Я понял, что могу заставить систему перенести задание, передав «верно» в «Задание выполнено».(https://developer.android.com/reference/android/app/job/JobService#jobFinished(android.app.job.JobParameters, boolean) позвоните в «onStartJob», но проблема в том, что я хочу перенести свою работу только один раз. Если это не удастся во второй раз, то я просто хочу закончить работу без переноса.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу понять, выполняется ли задание из-за переноса (и, следовательно, я не хочу переносить), по сравнению с первоначальным запуском службы заданий.

Одна идея у меня было обновление «JobParameters» что я получу в onStartJob (https://developer.android.com/reference/android/app/job/JobService#onStartJob(android.app.job.JobParameters) чтобы включить флаг, который говорит, является ли это повторить попытку, но вопрос в том, что хоть я и обновить параметры, она не сохраняется при следующем запуске.

Любая помощь будет очень признательна. Спасибо!