Я использую WorkManager, чтобы поставить в очередь OneTimeWorkRequests для загрузки файлов.Это, конечно, требует подключения к сети, и если устройство не имеет подключения, и загрузка не удалась, оно будет повторяться в соответствии с моей указанной политикой повторных попыток / отката.
Мой вопрос прост:
Можно ли изменить максимальное время отката для повторной попытки?
Максимальное время отсрочки установлено на 5 часовпо умолчанию, и я в идеале хотел бы уменьшить это, но я не смог найти способ сделать это.
См. Мой код для постановки в очередь рабочего запроса ниже:
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
OneTimeWorkRequest uploadRequest = new OneTimeWorkRequest.Builder(UploadFileWorker.class)
.setInputData(createInputDataForUri(file.getPath()))
.setConstraints(constraints)
.setBackoffCriteria(BackoffPolicy.EXPONENTIAL,
OneTimeWorkRequest.MIN_BACKOFF_MILLIS,
TimeUnit.MILLISECONDS)
.build();
workManager.enqueueUniqueWork(UNIQUE_WORK_FILE_UPLOAD, ExistingWorkPolicy.APPEND, uploadRequest);
Мы можем легко установить BackoffPolicy (линейный / экспоненциальный) и backoffDelay с помощью .setBackoffCriteria()
, а также добавить начальную задержкуна запрос, но я не вижу способа настроить максимальное время отката для повторной попытки.Это умышленно или я просто слепой?