al_downloader_flutter icon indicating copy to clipboard operation
al_downloader_flutter copied to clipboard

文件删除了无法重新下载

Open shiguanghuxian opened this issue 2 years ago • 9 comments

下载文件后,每次启动清理了历史下载,但再次下载时无法进行下载

I/flutter (15793): ALDownloader | _innerRemove, url = https://static.eduzhixin.com/android-apks/forum/zhixinForum_1.0.0.apk, but url's task is null
[log] 下载状态,下载前 ALDownloaderStatus.unstarted
I/flutter (15793): ALDownloader | _getTaskFromUrl, error = Bad state: No element
I/flutter (15793): ALDownloader | _addTaskOrUpdateTaskForUrl, error = Bad state: No element
I/flutter (15793): _ALDownloaderFilePathManager | get external storage directory: /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files
I/flutter (15793): ALDownloader | a download task was generated, download status = enqueued, taskId = 87dcf0d8-8362-4dae-b5ac-5ebaa5359549

shiguanghuxian avatar May 26 '22 04:05 shiguanghuxian

下载文件后,每次启动清理了历史下载,但再次下载时无法进行下载

I/flutter (15793): ALDownloader | _innerRemove, url = https://static.eduzhixin.com/android-apks/forum/zhixinForum_1.0.0.apk, but url's task is null
[log] 下载状态,下载前 ALDownloaderStatus.unstarted
I/flutter (15793): ALDownloader | _getTaskFromUrl, error = Bad state: No element
I/flutter (15793): ALDownloader | _addTaskOrUpdateTaskForUrl, error = Bad state: No element
I/flutter (15793): _ALDownloaderFilePathManager | get external storage directory: /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files
I/flutter (15793): ALDownloader | a download task was generated, download status = enqueued, taskId = 87dcf0d8-8362-4dae-b5ac-5ebaa5359549

你好,感谢反馈

一个协程里各个方法调用尝试加上await

await ALDownloader.initialize();
await ALDownloader.remove(url);
await ALDownloader.download(url);

jackleemeta avatar May 26 '22 06:05 jackleemeta

似乎还是不行,最后一条日志似乎是执行完了下载任务

[log] 下载状态,下载前 ALDownloaderStatus.unstarted
I/flutter (27884): ALDownloader | Flutterdownloader | _loadAndTryToRunTask, tasks length = 1
I/flutter (27884): ALDownloader | Flutterdownloader | _loadAndTryToRunTask, url = https://static.eduzhixin.com/android-apks/forum/zhixinForum_1.0.1.apk, taskId = f1a63ec9-d1b7-49c9-8f0c-ff8834a8ed5b, status = DownloadTaskStatus(3)
2
I/flutter (27884): _ALDownloaderFilePathManager | get external storage directory: /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files
I/flutter (27884): getAbsoluteVirtualPathOfFileWithUrl | filePath = /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files/al_flutter/al_unknown/546f65aa6b185a201334aaf3aa754206.apk
I/flutter (27884): ALDownloader | _loadAndTryToRunTask, tasks length = 1
I/flutter (27884): ALDownloader | _loadAndTryToRunTask, url = https://static.eduzhixin.com/android-apks/forum/zhixinForum_1.0.1.apk, taskId = f1a63ec9-d1b7-49c9-8f0c-ff8834a8ed5b, status = _ALDownloaderInnerStatus.complete
I/flutter (27884): ALDownloader | _getTaskFromUrl, error = Bad state: No element
I/flutter (27884): ALDownloader | _addTaskOrUpdateTaskForUrl, error = Bad state: No element
I/flutter (27884): _ALDownloaderFilePathManager | get external storage directory: /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files
I/flutter (27884): ALDownloader | a download task was generated, download status = enqueued, taskId = ad3f7e81-cba7-4b39-9a13-1dfce37a7a83
[log] 按钮文案 下载中 - 3 -- progress
I/trustAllHosts(27884): checkServerTrusted
I/WM-WorkerWrapper(27884): Worker result SUCCESS for Work [ id=ad3f7e81-cba7-4b39-9a13-1dfce37a7a83, tags={ flutter_download_task, vn.hunghd.flutterdownloader.DownloadWorker } ]

shiguanghuxian avatar May 26 '22 07:05 shiguanghuxian

似乎还是不行,最后一条日志似乎是执行完了下载任务

[log] 下载状态,下载前 ALDownloaderStatus.unstarted
I/flutter (27884): ALDownloader | Flutterdownloader | _loadAndTryToRunTask, tasks length = 1
I/flutter (27884): ALDownloader | Flutterdownloader | _loadAndTryToRunTask, url = https://static.eduzhixin.com/android-apks/forum/zhixinForum_1.0.1.apk, taskId = f1a63ec9-d1b7-49c9-8f0c-ff8834a8ed5b, status = DownloadTaskStatus(3)
2
I/flutter (27884): _ALDownloaderFilePathManager | get external storage directory: /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files
I/flutter (27884): getAbsoluteVirtualPathOfFileWithUrl | filePath = /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files/al_flutter/al_unknown/546f65aa6b185a201334aaf3aa754206.apk
I/flutter (27884): ALDownloader | _loadAndTryToRunTask, tasks length = 1
I/flutter (27884): ALDownloader | _loadAndTryToRunTask, url = https://static.eduzhixin.com/android-apks/forum/zhixinForum_1.0.1.apk, taskId = f1a63ec9-d1b7-49c9-8f0c-ff8834a8ed5b, status = _ALDownloaderInnerStatus.complete
I/flutter (27884): ALDownloader | _getTaskFromUrl, error = Bad state: No element
I/flutter (27884): ALDownloader | _addTaskOrUpdateTaskForUrl, error = Bad state: No element
I/flutter (27884): _ALDownloaderFilePathManager | get external storage directory: /storage/emulated/0/Android/data/com.eduzhixin.appstore.zhixin_pad_appstore/files
I/flutter (27884): ALDownloader | a download task was generated, download status = enqueued, taskId = ad3f7e81-cba7-4b39-9a13-1dfce37a7a83
[log] 按钮文案 下载中 - 3 -- progress
I/trustAllHosts(27884): checkServerTrusted
I/WM-WorkerWrapper(27884): Worker result SUCCESS for Work [ id=ad3f7e81-cba7-4b39-9a13-1dfce37a7a83, tags={ flutter_download_task, vn.hunghd.flutterdownloader.DownloadWorker } ]

请确认下执行[download]重新下载后,[_processDataFromPort]方法是否有持续执行并返回状态[status]和进度[progress]

jackleemeta avatar May 26 '22 07:05 jackleemeta

应该是没有,重新安装再下载就可以了

shiguanghuxian avatar May 26 '22 10:05 shiguanghuxian

嗯,好像是当文件下载完成以后,再remove ,progress = -1%, 然后再点击download 时 就会提示: flutter: ALDownloader | a download task was generated, download status = enqueued, taskId = com.example.example.download.background.1653703040.497849.43 flutter: ALDownloader | _getTaskFromUrl, error = Bad state: No element

remove后 download时 url is enqueued ,remove应该清空一下 enqueued url

yjt1216 avatar May 28 '22 02:05 yjt1216

下载队列中 只要有下载完成的任务,其他还在下载的就会unstart

yjt1216 avatar May 28 '22 02:05 yjt1216

嗯,好像是当文件下载完成以后,再remove ,progress = -1%, 然后再点击download 时 就会提示: flutter: ALDownloader | a download task was generated, download status = enqueued, taskId = com.example.example.download.background.1653703040.497849.43 flutter: ALDownloader | _getTaskFromUrl, error = Bad state: No element

remove后 download时 url is enqueued ,remove应该清空一下 enqueued url

remove会清掉url,download task was generated是再下载时生成的新任务,符合预期。

问题出在重下载时flutter_downloader没有下载回执,这个问题在android某些设备上存在,目前还在排查中。

jackleemeta avatar May 28 '22 03:05 jackleemeta

_removeAllAction() async { await ALDownloader.removeAll(); initialize(); }

这样就可以了

yjt1216 avatar May 28 '22 03:05 yjt1216

我也遇到了 单独下载后 清空不了 再次下载返回 Worker result SUCCESS for Work [ id=1971cf32-f2a4-4bbd-b031-881b05405918, tags={ flutter_download_task, vn.hunghd.flutterdownloader.DownloadWorker } ]

ZhangZhiH avatar May 17 '23 01:05 ZhangZhiH