Android JobScheduler: если вы планируете одну и ту же работу с периодическим временем, возобновляет ли она этот период?

Что произойдет, если я планирую одно и то же периодическое задание (тот же идентификатор задания), и задание уже запланировано? Снова начинается его период с начала?

Например, я дважды вызываю этот метод:

JobInfo myLongJob = new JobInfo.Builder(
            JOB_ID,
            new ComponentName(context, JobSchedulerLongService.class.getName())
    ).setPeriodic(10000)
     .build();

    jobScheduler.schedule(myLongJob);

Выполняет ли планирование задания второе время, чтобы периодический таймер снова начал подсчет?

Ответ 1

Я нашел его после нескольких тестов:

Выполняет ли планирование задания второй раз, чтобы периодический таймер снова начал подсчет?

Да! и...

Это будет зависеть от:

  • Если задание выполняется: приведет к остановке первого задания (вызов метода onStopJob) и начнется снова.
  • Если задание не выполняется: снова начнется обратный отсчет времени.

Добавлен действительно полезный комментарий от @Gauthier:

jobId - int: Идентификатор приложения для этого задания. Последующие вызовы отмены, или заданий, созданных с одинаковым свойством jobId, обновит существующее ранее задание с тем же идентификатором. [ссылка на этот документ] (http://developer.android.com/reference/android/app/job/JobInfo.Builder.html#JobInfo.Builder(int, android.content.ComponentName))