我试图在 firebase 上上传文件时添加一个进度条。但不幸的是,它并不表示上传进度。 logcat 和进度条都只指示文件何时达到 100%
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");
}
});
最佳答案
更改progress
计算中的术语分组以强制转换为 float 。正如您现在的代码一样,您正在划分两个 long。除法的结果将为 0,直到 getBytesTransferred() == getTotalByteCount()
,然后为 1。
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
关于android - 使用 Firebase 上传更新进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38278249/