Проблема не в вашем коде, а в настройке периода работы.evernote работает только с периодическим заданием> = 15 минут, в то время как вы используете 1 минуту в качестве периода для запуска задания.смотрите документацию Evenote-Job, так как она основана на Job-планировщике, который имеет те же ограничения для запуска периодического задания.
private void schedulePeriodicJob() {
int jobId = new JobRequest.Builder(DemoSyncJob.TAG)
.setPeriodic(TimeUnit.MINUTES.toMillis(15), TimeUnit.MINUTES.toMillis(5))
.build()
.schedule();
}
это код, который они помещают в свою библиотечную документацию.Пожалуйста, проверьте это.->
Почему интервал не может быть меньше 15 минут для периодических заданий? Эта библиотека является подмножеством 3 различных API.Начиная с Android Nougat минимальный интервал периодических работ составляет 15 минут.Хотя устройства до Nougat поддерживают меньшие интервалы, для этой библиотеки в качестве минимума был выбран наименьший общий, чтобы периодические задания выполнялись с одинаковой частотой на всех устройствах.
JobScheduler с Android Nougat позволяет устанавливать меньший интервал, нозначение бесшумно корректируется и предупреждение регистрируется.Вместо этого эта библиотека генерирует исключение, так что некорректно выполняемые задания обнаруживаются рано.Вы можете прочитать больше об этом здесь.
это код, который работает для меня ->
где // Обновление данных о погоде каждые 15 минут ...
private static final int CURRENTWEATHERUPDATE_TIMEINTERVAL = 15 * 60 * 1000;
private static void ScheduleJobEvery15Minutes() {
// Scheduling Job After every 15 minutes...
new JobRequest.Builder(TAG)
.setPeriodic(CURRENTWEATHERUPDATE_TIMEINTERVAL)
.setRequiredNetworkType(JobRequest.NetworkType.CONNECTED)
.setRequirementsEnforced(true)
.setUpdateCurrent(true)
.build()
.schedule();
}
РЕДАКТИРОВАТЬ -> Также проверьте свой класс Jobcreator, вы возвращаете нулевое значение, как это,
public class CreatingJob implements JobCreator {
@Nullable
@Override
public Job create(@NonNull String tag) {
switch (tag) {
case SyncMasterDataJOB.TAG:
return new SyncMasterDataJOB();
}
return null;
}
измените свой код на это ->
public class CreatingJob implements JobCreator {
@Nullable
@Override
public Job create(@NonNull String tag) {
switch (tag) {
case SyncMasterDataJOB.TAG:
return new SyncMasterDataJOB();
case default:
return null;
}
}