0
我想要顯示一個下載進度條,以顯示用戶在我的應用繼續下一個活動(而不是僅顯示黑屏)之前剩下多少字節。我試圖用下面的代碼:Firebase下載進度條
task.addOnProgressListener(new OnProgressListener<FileDownloadTask.TaskSnapshot>() {
private float previouslyTransferedBytes = 0;
private boolean firstProgress = true;
@Override
@SuppressWarnings("VisibleForTests")
public void onProgress(FileDownloadTask.TaskSnapshot taskSnapshot) {
//update total bytes to download
if(firstProgress){
Intent totalBytesToDownloadIntent = new Intent(Code.TOTAL_BYTES_TO_TRANSFER);
float totalbytecount = taskSnapshot.getTotalByteCount();
totalBytesToDownloadIntent.putExtra(Code.TOTAL_BYTES_TO_TRANSFER,totalbytecount);
GlobalVars.applicationContext.sendBroadcast(totalBytesToDownloadIntent);
firstProgress = false;
}
float newlyTransfered = taskSnapshot.getBytesTransferred()-previouslyTransferedBytes;
Intent downloadProgress = new Intent(Code.DOWNLOAD_PROGRESS);
downloadProgress.putExtra(Code.BYTES_TRANSFERED,newlyTransfered);
GlobalVars.applicationContext.sendBroadcast(downloadProgress);
previouslyTransferedBytes = taskSnapshot.getBytesTransferred();
}
});
但是,總數bytecount只返回-1。我究竟做錯了什麼?
編輯:該文件肯定存在,因爲它得到正確下載並在以後在應用程序中使用。
編輯2:「任務」是FileDownloadTask類型。
您使用哪種'getXXX()'方法('getFile()','getBytes()','getStream()')來下載? –
我正在使用getFile() – Jonathan
您正在使用字符串'Code.TOTAL_BYTES_TO_TRANSFER'作爲一個intent動作和作爲存儲額外的'totalbytecount'的關鍵。這是你的意圖嗎? –