Как заставить JobService работать после первоначальной задержки?

Я хочу, чтобы JobScheduler запланировал выполнение задания через 5 минут, а затем оно будет продолжать выполняться каждые 3 минуты. Как я могу запланировать задание с начальной задержкой?

Мой текущий код:

JobInfo.Builder builder = new JobInfo.Builder(32, componentName);
        if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            builder.setPeriodic(SUBSEQUENT_EXECUTION_INTERVAL);
        } else {
            builder.setMinimumLatency(SUBSEQUENT_EXECUTION_INTERVAL);
        }
        JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
        jobScheduler.schedule(builder.build());

person Adrian Le Roy Devezin    schedule 23.10.2017    source источник
comment
в первый раз используйте обработчик с 5-минутным интервалом, а в следующий раз используйте задачу таймера или диспетчер аварийных сигналов для запуска планировщика заданий в определенный интервал времени.   -  person Radhey    schedule 23.10.2017
comment
@Radhey Я использую планировщик заданий, потому что использую фоновые сервисы с Android O.   -  person Adrian Le Roy Devezin    schedule 23.10.2017


Ответы (1)


В настоящее время идеальной ситуацией является использование WorkManager в Android Arch. При этом вы можете установить overrideDeadline, который запускает вашу задачу после первоначальной задержки. Дополнительную информацию можно найти здесь

person Adrian Le Roy Devezin    schedule 26.11.2018