EverNote andoid-job: Как я могу запускать задание в определенное время один раз в день каждую неделю?

Я разрабатываю еженедельный планировщик для Android, и мне интересна периодическая работа (например, раз в неделю), которая запускается в определенное время (например, в 16:00) с помощью evernote android-job

Я прочитал этот пост

https://github.com/evernote/android-job/blob/master/FAQ.md#how-can-i-run-a-job-at-a-specific-time-once-a-day

и я могу работать каждый день один раз в день, но это не мой случай. Если я установлю

new JobRequest.Builder( MY_TAG ) .setExact( TimeUnit.HOURS.toMillis( 16 ) + TimeUnit.MINUTES.toMillis( 0 )) .setPeriodic( TimeUnit.DAYS.toMillis( 7 ), TimeUnit.MINUTES.toMillis(5) ) .setPersisted(true) .build() .schedule();

У меня есть эта ошибка

"Не могу вызвать setExact() для периодического задания"

Кто-нибудь может мне помочь?

2 ответа

setExact() и setPeriodic() являются двумя различными функциями, они не могут быть связаны. Если вы хотите периодически использовать setExact, вам придется заново планировать задание после запуска ранее заданного задания.

Попробуйте это чувак.

public final class MyDailyJob extends DailyJob {
public static final String TAG = "MyDailyJob";
public static void schedule() {
    // schedule between 1 and 6 AM
    DailyJob.schedule(new JobRequest.Builder(TAG), TimeUnit.HOURS.toMillis(1), TimeUnit.HOURS.toMillis(6));
}

@NonNull
@Override
protected DailyJobResult onRunDailyJob(Params params) {
    return DailyJobResult.SUCCESS;
 }
}

ссылка ссылка

Другие вопросы по тегам