2016-02-23 3 views
0

Я пытаюсь загрузить файл с помощью сервисов в android ... Я смог написать программу, и я могу загрузить то, что захочу. но проблема связана с индикатором прогресса !!! Я не могу определить общую длину файла (или размер) и текущий размер загружаемого файла. Я использовал этот код, чтобы получить файл длинуобновить индикатор выполнения при загрузке файла в android

  URL url = new URL(urlToDownload); 
      URLConnection connection = url.openConnection(); 
      connection.connect(); 
      int fileLength = connection.getContentLength(); 

и я использовал эту часть кода для определения текущего загруженного размера

  InputStream input = new BufferedInputStream(connection.getInputStream()); 
      OutputStream output = new FileOutputStream("/sdcard/BarcodeScanner-debug.apk"); 

      byte data[] = new byte[1024]; 
      long total = 0; 
      int count; 
      while ((count = input.read(data)) != -1) { 
       total += count; 
       int currentValue=(total * 100/fileLength); 
       output.write(data, 0, count); 
      } 

проблема заключается в том, что в конце загрузки я получил что-то вроде 241% вместо 100% (потому что длина файла для ex была около 12226, а общая сумма 29349) У вас есть какие-либо идеи по этой теме.

+0

могли бы вы поделиться код, как вы показываете прогресс, а также проверить, делает загрузку url поддерживает 'getContentLength' –

ответ

Смежные вопросы