WorkManager-是否可以更改WorkRequest重试的最大退避时间?

时间:2019-09-25 10:14:45

标签: android android-workmanager

我正在使用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,并为请求添加初始延迟,但是我看不到自定义重试的最大退避时间的方法。这是设计使然,还是我只是盲目的?

0 个答案:

没有答案