title: Implement pause/resume in file downloading
body: <p>I'm trying to implement pause/resume in my download manager, I search the web and read several articles and change my code according them but resume seems not working correctly, Any ideas?</p>
  
  <pre><code>                if (!downloadPath.exists()) 
                      downloadPath.mkdirs(); 
  
                  if (outputFileCache.exists())
                  {
                      downloadedSize = outputFileCache.length();
                      connection.setAllowUserInteraction(true);
                      connection.setRequestProperty("Range", "bytes=" + downloadedSize + "-");
                      connection.setConnectTimeout(14000);
                      connection.connect();
                      input = new BufferedInputStream(connection.getInputStream());
                      output = new FileOutputStream(outputFileCache, true);
                      input.skip(downloadedSize); //Skip downloaded size
                  }
                  else
                  {
                      connection.setConnectTimeout(14000);
                      connection.connect();
                      input = new BufferedInputStream(url.openStream());
                      output = new FileOutputStream(outputFileCache);
                  }
  
                  fileLength = connection.getContentLength();                 
  
  
                  byte data[] = new byte[1024];
                  int count = 0;
                  int __progress = 0;
                  long total = downloadedSize;
  
                  while ((count = input.read(data)) != -1 &amp;&amp; !this.isInterrupted()) 
                  {
                      total += count;
                      output.write(data, 0, count);
                      __progress = (int) (total * 100 / fileLength);
  
                  }
                  output.flush();
                  output.close();
                  input.close();
  </code></pre>