【问题标题】:Download file with pause and resume button?使用暂停和恢复按钮下载文件?
【发布时间】:2014-08-25 07:14:24
【问题描述】:

我用谷歌搜索了很多,但没有找到关于两个暂停和恢复按钮的解决方案。
我使用来自 this code this
但我不知道如何实现暂停和恢复功能并为我的暂停和恢复按钮 onclick 事件设置什么:

pausebtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            stopdownload(); AND resumedownload(); <------
        }
    });


提前致谢。

【问题讨论】:

    标签: android android-download-manager resume-download


    【解决方案1】:

    停止下载调用

    downloadTask.cancel(false);
    

    要支持恢复下载,您可以使用Resume http file download in java的代码:

    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);
    }
    

    【讨论】:

    • 感谢您的回复,但您对这条线的意思是什么:if(ISSUE_DOWNLOAD_STATUS.intValue()==ECMConstant.ECM_DOWNLOADING)
    • 这意味着您将下载状态保存在某处,因此当您开始/恢复下载时,请检查您是否已经下载了某些内容。您应该将其替换为您自己的标志/无论如何,此代码只是提示您如何执行此操作。还要检查我发布链接的原始问题。
    • 我的停止代码工作正常,谢谢。但是关于简历功能,如果我理解你的意思是正确的,我必须有这个代码:new DownloadTask(this, **ISRESUME**).execute("MYURL"); 并在 if 条件下检查它。我说的对吗?
    • 是的,在你的DownloadTask 中,你保存了downloaded 文件的多少(你的代码中有total 变量)所以当你再次开始任务时,你传递当前新任务的大小。
    • 我的流链接及其内容长度存在一些问题。最后,我做了一些编辑。感谢安东的诡计。
    猜你喜欢
    • 2011-02-27
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    相关资源
    最近更新 更多