2013-01-20 121 views
7

我希望能夠打開一個http連接到Android中的給定文件並開始下載它。 我也必須能夠暫停下載並稍後恢復。 這是如何在Android中實現的?我不想重新開始下載。暫停/恢復http連接下載

+1

你有沒有看到這個http://stackoverflow.com/questions/6237079/resume-http-file-download-in-java – laxonline

+0

@laxonline十分感謝!如果你發佈這個答案,我可以接受並關閉這個答案。 –

回答

1

這樣的下載已經發布here

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

你能解釋一下代碼上發生了什麼? – Cjames

+0

請始終將代碼添加到您的代碼中。 – Sufian