例如我正在从服务器下载一个文件,在那段连接丢失的时候我的下载是30%,经过一段时间我得到了一个连接。现在我想从30%开始下载,而不是从0%。如何实现这个asynctask android。
如果有任何替代方案,请告诉我。???
答案 0 :(得分:1)
您需要先弄清楚实际下载的字节数。我建议您在下载文件时使用其他名称保存文件,这样您就可以轻松查看是否有未完成的下载。
首先检查您的文件状态以查看您已下载了多少文件。
private long isIncomplete(){
File from = new File(dir,fileName+"-incomplete");
if(from.exists()){
Log.d("status","download is incomplete, filesize:" + from.length());
return from.length();
}
return 0;
}
然后在创建您的http请求时,您可以告诉服务器从哪个位置为您提供文件,以便您可以继续下载。
long downloaded = isIncomplete();
urlConnection.setRequestProperty("Range", "bytes="+(downloaded)+"-");
请参阅几年前我写的this class以完成实施。
更新:我建议您不要使用共享首选项。 SSOT声明您只从一个来源获取信息而不是更多,因此从下载的文件中读取进度。
答案 1 :(得分:0)
您可以将目标文件路径存储在sharedpreferences中,您可以执行以下代码。
tf.select