Android JobScheduler. Могу ли я планировать работу каждые 15 секунд - PullRequest
0 голосов
/ 28 июня 2018

Мой код работает. Но я не уверен, что это будет работать на всех устройствах и всегда. Могу ли я использовать JobScheduler, как это?

Метод запуска:

public static void schedule() {
    JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);

    JobInfo job = new JobInfo.Builder(1, new ComponentName(context, MySchedulerService.class))
            .setMinimumLatency(15000)
            .build();

    scheduler.schedule(job);
}

Услуги:

public static class MySchedulerService extends JobService {

    public boolean onStartJob(JobParameters params) {
        schedule();
       /*   Business code   */
        stopSelf();
        return false;
    }

    public boolean onStopJob(JobParameters params) {
        return false;
    }
}

1 Ответ

0 голосов
/ 28 июня 2018

Можно ли планировать работу каждые 15 секунд

Нет. Минимальная продолжительность между двумя графиками составляет около 15 минут. Вы можете легко запросить эту информацию, используя getMinPeriodMillis ()

Примечание:

Попытка объявить меньший период при планировании работы приведет к работе, которая все еще является периодической, но будет выполняться с этим эффективный период.

Для setMinimumLatency, на основе документации :

Миллисекунды, до которых эта работа не будет рассматриваться для выполнение.

Это не означает, что задание будет выполнено немедленно через 15 секунд и не будет надежным с Android N, когда первая фаза режима дозирования вступает в силу.

...