2016-07-09 16 views
3

Ich habe versucht, eine Fortschrittsbalken zum Hochladen von Dateien auf Firebase hinzuzufügen. Leider zeigt es keinen Upload-Fortschritt an. beide logcat & nur Fortschrittsbalken zeigen an, wenn die Datei auf 100% erreichtUpdate-Fortschrittsbalken mit Firebase-Upload

uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
       double progress = 100.0 * (taskSnapshot.getBytesTransferred()/taskSnapshot.getTotalByteCount()); 
       System.out.println("Upload is " + progress + "% done"); 
      int currentprogress = (int) progress; 
       progressBar.setProgress(currentprogress); 
      } 
     }).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onPaused(UploadTask.TaskSnapshot taskSnapshot) { 
       System.out.println("Upload is paused"); 
      } 
     }); 
+2

Der Fortschrittsbalken feuert für 256 KB Inkrementen. Wenn Ihre Datei also kleiner als 256 KB ist, springt sie in einem Update von 0% auf 100%. –

+1

Ich probierte Dateien wie 2MB, 4MB Protokoll Katze Updates "Upload ist 0% erledigt" für wie 5 oder 6 mal. aber Nummer ist nicht belastend noch Fortschrittsbalken Update –

+0

@FrankvanPuffelen gibt es eine Möglichkeit, Hörer unter 256 KB ??? –

Antwort

12

ändern die Gruppierung von Begriffen in Ihrer Berechnung von progress Umwandlung zu zwingen, zu schweben. Wie Ihr Code jetzt ist, teilen Sie zwei Longs. Das Ergebnis der Division ist 0 bis getBytesTransferred() == getTotalByteCount(), dann wird es 1.

double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 
+0

danke. das hat funktioniert –

+2

Autsch ... das ist ein dummer Fehler im Codebeispiel. Ich habe eine Notiz gemacht, um es zu beheben. –

+2

@FrankvanPuffelen Sir Ich habe das Problem bereits gemeldet unter https://code.google.com/p/android/issues/detail?id=215428 –