繁体   English   中英

无法恢复下载

[英]Can't resume download

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

这是我的代码:

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标头,DownloadManager用它来标识下载文件。 如果下载过程中断,则DownloadManger请求部分下载以便在上次下载的位置恢复。 此请求包含其他标题: Content-Range的范围 - 范围和If-Match与接收的ETag的值。 服务器必须使用请求的范围和HTTP状态代码206进行响应。检查服务器日志并将它们与ADB输出进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM