2013-03-30 3 views
1
내가 하나 개의 진행률 표시 줄에 (순간 2) 여러 파일을 다운로드 할

이를 위해진행률 표시 줄과 여러 다운로드

(진행률 표시 줄을 다시 설정하라는없이), 난 모든 파일의 총 길이에 걸쳐 검색 순서는 다음 다른 50 % 여기

까지 다시 증가 게시 진행 방법에 문제는 내 진행 표시 줄이 0으로 재설정한다는 것입니다

에 한 번 50 %에 도달를 사용하는 것은 내 코드입니다

@Override 
     protected Void doInBackground(Void... params) { 
      int totalSizeFile; 
      totalSizeFile=cm.getLength(url[0]); 
      totalSizeFile+=cm.getLength(url[1]); 
      progressBar.setMax(totalSizeFile); 

      cm.downloadMp3(url[0], "test.mp3", totalTailleFic); 
      cm.downloadMp3(url[1], "test2.mp3", totalTailleFic); 


      return null;    

     } 

     @Override 
     protected void onProgressUpdate(Integer... progress) { 

      textview.setText(String.valueOf(progress[0])+"%"); 
      progressBar.incrementProgressBy(progress[0]); 


     } 
,691 변수 total도 제로로 다시 설정되기 때문에

내가 publishprogress 방법

byte[] buffer = new byte[1024]; 
      int bufferLength = 0; 
      int total=0; 
      while ((bufferLength = inputStream.read(buffer)) != -1) { 
      total += bufferLength; 
      fileOutput.write(buffer, 0, bufferLength); 

      asynch.publishProgress(bufferLength); 

      } 

에게 전화를 내 다운로드 기능의 코드를 다운로드 사이의 제로 당신에게

답변

1

귀하의 ProgressBar 재설정 대단히 감사합니다.

현재 진행률을 추적하려면 progressBar.setProgress()으로 값을 설정하는 대신 진행률 표시 줄을 progressBar.incrementProgressBy()으로 증가시켜야합니다.

이것은 및 onProgressUpdate() 메서드도 progress 대신 increment을 처리하도록 수정되어야 함을 의미합니다. 그리고, 증가는 bufferLength입니다 :

asynch.publishProgress(bufferLength); 

또한 progressBar.setMax()에 모두 다운로드의 합에 대한 총 바이트 수와 ProgressBar를 초기화해야합니다.

+0

안녕하세요. 도와 주셔서 감사합니다.하지만 incrementPro를 시도해보십시오. 이제 진도 막대가 덩어리없이 한 번에 채워집니다. – user2177823

+0

실제로 진행률 변수 인 OnProgressUpdate는 각 다운로드 사이에 0으로 재설정됩니다. – user2177823

+0

'setMax()'를 사용하여'ProgressBar'를 총 바이트 수로 초기화합니다 (편집 참조). –

관련 문제