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

Pew*_*chu 5 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);
Run Code Online (Sandbox Code Playgroud)

我们可以使用 轻松设置 BackoffPolicy(线性/指数)和 backoffDelay .setBackoffCriteria(),并为请求添加初始延迟,但我认为无法自定义重试的最大退避时间。这是设计使然,还是我只是瞎了眼?