lingochamp / FileDownloader

Multitask、MultiThread(MultiConnection)、Breakpoint-resume、High-concurrency、Simple to use、Single/NotSingle-process
Apache License 2.0
11.02k stars 2.2k forks source link

我下载文件失败后,再次点击下载,文件直接下载成功,然而文件并没有下载完成 #664

Closed wbb631094818 closed 7 years ago

wbb631094818 commented 7 years ago

我使用的是1.6.1版本,我使用的代码是: public int startDownload(DownloadInfo downloadInfo) { BaseDownloadTask baseDownloadTask = FileDownloader.getImpl().create(downloadInfo.getDownload_url()) .setPath(downloadInfo.getFile_path()) .setTag(0, downloadInfo) .setAutoRetryTimes(4)// 当请求或下载或写文件过程中存在错误时,自动重试次数,默认为0次 .setCallbackProgressMinInterval(1000) // 最少1秒回调一次 .setCallbackProgressTimes(2000) .setListener(lis); return baseDownloadTask.start(); }

现在当我测试断开网络,让下载失败,之后重新连接网络,再次点击下载,文件直接显示成功,请问,这是什么原因?

Jacksgong commented 7 years ago

我在demo project中测试你的复现过程我测试断开网络,让下载失败,之后重新连接网络,再次点击下载,文件直接显示成功 无法复现。


  1. 可否在demo中试试看,看看有没有进一步信息用于定位问题?
  2. 提示成功的时候本地文件是否存在,是否完整?
wbb631094818 commented 7 years ago

显示下载完成后既存在temp文件也存在apk文件(我下载的是游戏apk文件),apk文件大小为0b,

Jacksgong commented 7 years ago

@wbb631094818 这个比较奇怪,因为apk文件最终只能是temp文件重命名过去的。你看看能否在demo中进行复现,以便于我这边定位问题所在,你也多留意logcat看看有没有线索。

wbb631094818 commented 7 years ago

我刚才测试下载另一个域名的下载地址没有发生这种情况,下载这个时(地址:http://hs.downloadatoz.com/apk_2017/fo/go/to/com-mojang-minecraftpe.872010250.swf),就会有这种情况,是服务器的问题吗,能帮我看看吗

Jacksgong commented 7 years ago

我用你提供的链接,在demo中实验验证测试断开网络,让下载失败,之后重新连接网络,再次点击下载,文件直接显示成功没有复现,无法进一步定位问题,你看看在demo中试试你的链接看看有没有进一步信息。

wbb631094818 commented 7 years ago

你好,我终于找到原因了,我因为在失败方法监听中添加错误信息统计时,创建了一个0B大小的该文件,然后点击重新下载时,就直接进入到下载成功监听,现在改正后,运行就没有问题了。

Jacksgong commented 7 years ago

@wbb631094818 ok