我必须从 FTP 服务器下载一个大的压缩文件(包含多个文件)。在下载过程中,如果被用户或网络中断/暂停,应保存损坏的下载文件。稍后,用户可以从损坏的位置继续下载相同的文件。
问问题
2305 次
2 回答
3
您可以使用 DownloadManager 类。
下载管理器是处理长时间运行的 HTTP 下载的系统服务。
检查http://developer.android.com/reference/android/app/DownloadManager.html
以上类自 API 级别 9 起可用。
于 2012-08-13T10:36:09.247 回答
0
可以使用 Range HTTP 标头设置要下载的字节范围。您所要做的就是记住您之前下载了多少字节。使用 apache 中的类,它看起来像这样:
DefaultHttpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(youSourceUri);
// That's the important part. Count represents the number of bytes already downloaded.
// We leave the range open, so it will download 'till the end of the file.
httpGet.addHeader(new BasicHeader("Range", "bytes=" + count + "-"));
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
InputStream inputStream = entity.getContent();
// Then read from the input stream
请记住添加适当的 try/catch/finally 子句以安全地处理流并确保关闭它们。为了便于阅读,这里省略了它们。
于 2016-03-04T13:47:41.257 回答