gpt4 book ai didi

android - 无法恢复下载

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:11:22 24 4
gpt4 key购买 nike

我想从我的服务器下载一个大的 (zip) 文件。大约440MB。我正在使用安卓下载服务。

这是我的代码:

DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(Uri.parse(SERVER_PATH));
request.setTitle(getString(R.string.title_download));
request.setDescription(getString(R.string.desc_download));
File mapDir = new File(Environment.getExternalStorageDirectory() + DEVICE_PATH_PART);
File mapPartFile = new File(Environment.getExternalStorageDirectory() + DEVICE_PATH_PART + MAP_PACKFILE + EXT_INPROGRESS);
request.setDestinationUri(Uri.fromFile(mapPartFile));
enqueue = dm.enqueue(request);

下载开始正常。我可以在下载管理器中看到我的文件。但是当出现一些网络问题(连接中断)时,下载完成并出现错误 1008,并且部分文件被从我的目录中删除。这是我的问题和问题:如何强制下载服务不从我的目标目录中删除部分文件,以便继续下载过程?

附带的问题或问题是:当我从我的应用程序下载 440meg 文件时,下载过程多次中断(出现无法恢复错误,之后不可能恢复下载)。但是,如果我直接在 android 中通过下载管理器应用程序下载相同的文件,一切正常。我不知道为什么。我在接收器中遇到的唯一错误是关于无法恢复的 1008。有人遇到同样的问题吗?

谢谢。

最佳答案

您的服务器必须返回一个 ETag header ,DownloadManager 使用它来识别下载文件。如果下载过程中断,DownloadManger 会请求部分下载以恢复上次下载的位置。此请求包含其他 header :用于范围的 Content-Range 和具有接收到的 ETag 值的 If-Match。服务器必须响应请求的范围和 HTTP 状态代码 206。检查您的服务器日志并将它们与 ADB 输出进行比较。

关于android - 无法恢复下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20776833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com