2

我必须从 FTP 服务器下载一个大的压缩文件(包含多个文件)。在下载过程中,如果被用户或网络中断/暂停,应保存损坏的下载文件。稍后,用户可以从损坏的位置继续下载相同的文件。

4

2 回答 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 回答