PeriodicWorkRequest не учитывает время повторения - PullRequest
0 голосов
/ 21 октября 2018

У меня проблема с запросом на работу (1.0.0-alpha10). Допустим, если я хочу запускать работу (в моем случае уведомление) каждые 5 часов, я делаю следующее

static void StartWorker(){
PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(NotifyWorker.class, 5, TimeUnit.HOURS,3000,TimeUnit.MILLISECONDS)
            .addTag("ok")
           .build();
}

Но проблема в том, что уведомление начинается даже через 20 минут, это странно, потому что оно действительно случайное, я понимаю, что не могу пройти ровно 5 часов между двумя уведомлениями, но ожидать, что это 4:30 часа, будет слишком много.

Класс NotifyWorker выглядит следующим образом:

public class NotifyWorker extends Worker {

public NotifyWorker(@NonNull Context context, @NonNull WorkerParameters params) {
    super(context, params);
}

@NonNull
@Override
public Worker.Result doWork() {

    // Method to trigger an instant notification

    Context context= getApplicationContext();

    notification();

    return Worker.Result.SUCCESS;

}

}

Что я делаю не так?Я использую Galaxy S8 с Android 8.0.0 для отладки.

1 Ответ

0 голосов
/ 22 октября 2018

Насколько я понимаю, Flex Interval - это минимальное время ожидания, после которого задача может быть выполнена.Таким образом, вы должны изменить интервал изгиба на 295 минут (4 часа 55 минут) с 300 миллисекунд. Example from google documentation периодический запрос на работу

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...