【发布时间】:2013-01-20 09:10:31
【问题描述】:
我希望能够在 Android 中打开到给定文件的 http 连接并开始下载它。 我还必须能够在某个时候暂停下载并稍后恢复。 这在 Android 中是如何实现的?我不想重新开始下载。
【问题讨论】:
-
@laxonline 非常感谢!如果您将此作为答案发布,我可以接受并关闭此答案。
我希望能够在 Android 中打开到给定文件的 http 连接并开始下载它。 我还必须能够在某个时候暂停下载并稍后恢复。 这在 Android 中是如何实现的?我不想重新开始下载。
【问题讨论】:
这样的下载器已经发布here:
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
if(ISSUE_DOWNLOAD_STATUS.intValue()==ECMConstant.ECM_DOWNLOADING){
File file=new File(DESTINATION_PATH);
if(file.exists()){
downloaded = (int) file.length();
connection.setRequestProperty("Range", "bytes="+(file.length())+"-");
}
}else{
connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
}
connection.setDoInput(true);
connection.setDoOutput(true);
progressBar.setMax(connection.getContentLength());
in = new BufferedInputStream(connection.getInputStream());
fos=(downloaded==0)? new FileOutputStream(DESTINATION_PATH): new FileOutputStream(DESTINATION_PATH,true);
bout = new BufferedOutputStream(fos, 1024);
byte[] data = new byte[1024];
int x = 0;
while ((x = in.read(data, 0, 1024)) >= 0) {
bout.write(data, 0, x);
downloaded += x;
progressBar.setProgress(downloaded);
}
【讨论】: