1

I've googled much and I don't find my solution about two pause and resume button.
I use from this code and this .
But I don't know how implement pause and resume capability and set what to my pause and resume button onclick event:

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


Thanks in advance.

Community
  • 1
  • 1
Naruto Uzumaki
  • 2,019
  • 18
  • 37

1 Answers1

1

To stop download call

downloadTask.cancel(false);

To support resuming download you can use the code from 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);
}
Community
  • 1
  • 1
Anton Savin
  • 40,838
  • 8
  • 54
  • 90
  • Thanks for reply but what is your mean about this line: `if(ISSUE_DOWNLOAD_STATUS.intValue()==ECMConstant.ECM_DOWNLOADING)` – Naruto Uzumaki Aug 25 '14 at 07:42
  • It means that you save your download status somewhere, so when you start/resume download you check if you've already downloaded something or not. You should replace this with your own flag/whatever, this code is just a hint how you could do this. Also check the original question I posted a link for. – Anton Savin Aug 25 '14 at 07:48
  • My stop code work fine, thanks. But about the resume func, If I've understood what you mean correctly, I must have this code: `new DownloadTask(this, **ISRESUME**).execute("MYURL");` and in if condition check it. Did I right? – Naruto Uzumaki Aug 25 '14 at 08:02
  • Yes, and inside your `DownloadTask` you save how much of the file you've `downloaded` (there is `total` variable in your code) so when you start task again you pass the current size to the new task. – Anton Savin Aug 25 '14 at 08:12
  • I've been some issue with my stream link and its content length. Finally with some edited I doing that. Thanks Anton for your trick. – Naruto Uzumaki Aug 25 '14 at 11:58
  • @AntonSavin I get `notFoundException` error for valid link and download links – tux-world Nov 27 '16 at 09:16