我正在使用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);
我们可以轻松地使用.setBackoffCriteria()
设置BackoffPolicy(线性/指数)和backoffDelay,并为请求添加初始延迟,但是我看不到自定义重试的最大退避时间的方法。这是设计使然,还是我只是盲目的?