如何在asynctask android

时间:2017-02-18 05:56:11

标签: android android-asynctask downloading

例如我正在从服务器下载一个文件,在那段连接丢失的时候我的下载是30%,经过一段时间我得到了一个连接。现在我想从30%开始下载,而不是从0%。如何实现这个asynctask android。

如果有任何替代方案,请告诉我。???

2 个答案:

答案 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