flutter_downloader
這個插件在用的時候,Android模擬器上面會出現下面這個報錯,進度一直是0
Backoff delay duration less than minimum value
- 看了很多issue,發現一個issue戳中要害
https://github.com/fluttercommunity/flutter_downloader/issues/105
模擬器上面的WiFi或者信號中有個x號,因為無法訪問到google,則判斷網絡無法連接,導致無法下載,實際上是可以連接網絡的。
// 源碼在flutter_downloader/android/src/main/java/vn/hunghd/flutterdownloader/FlutterDownloaderPlugin.java 143行、
...
private WorkRequest buildRequest(String url, String savedDir, String filename, String headers, boolean showNotification, boolean openFileFromNotification, boolean isResume, boolean requiresStorageNotLow) {
WorkRequest request = new OneTimeWorkRequest.Builder(DownloadWorker.class)
.setConstraints(new Constraints.Builder()
.setRequiresStorageNotLow(requiresStorageNotLow)
.setRequiredNetworkType(NetworkType.CONNECTED) // 這里
.build())
.addTag(TAG)
.setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 5, TimeUnit.SECONDS)
.setInputData(new Data.Builder()
.putString(DownloadWorker.ARG_URL, url)
.putString(DownloadWorker.ARG_SAVED_DIR, savedDir)
.putString(DownloadWorker.ARG_FILE_NAME, filename)
.putString(DownloadWorker.ARG_HEADERS, headers)
.putBoolean(DownloadWorker.ARG_SHOW_NOTIFICATION, showNotification)
.putBoolean(DownloadWorker.ARG_OPEN_FILE_FROM_NOTIFICATION, openFileFromNotification)
.putBoolean(DownloadWorker.ARG_IS_RESUME, isResume)
.build()
)
.build();
return request;
...
- 解決方案