Firebase 下载进度条
Firebase download progress bar
我想显示一个下载进度条,向用户显示在我的应用程序继续下一个 activity 之前还剩下多少字节要下载(而不是只显示黑屏)。我已经尝试使用此代码:
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();
}
});
但总字节数仅为 returns -1。我做错了什么?
编辑:文件肯定存在,因为它已被正确下载并稍后在应用程序中使用。
编辑 2:"task" 属于 FileDownloadTask 类型。
当第一次调用onProgressListener
的onProgress()
下载时,getBytesTransferred() == 0
和getTotalByteCount() == -1
。在后续调用中,总字节数是正确的。我不知道这是一个错误还是 API 的一个未记录的细节。您可以向 Firebase Support 报告以获得他们的反馈。
我想显示一个下载进度条,向用户显示在我的应用程序继续下一个 activity 之前还剩下多少字节要下载(而不是只显示黑屏)。我已经尝试使用此代码:
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();
}
});
但总字节数仅为 returns -1。我做错了什么?
编辑:文件肯定存在,因为它已被正确下载并稍后在应用程序中使用。
编辑 2:"task" 属于 FileDownloadTask 类型。
当第一次调用onProgressListener
的onProgress()
下载时,getBytesTransferred() == 0
和getTotalByteCount() == -1
。在后续调用中,总字节数是正确的。我不知道这是一个错误还是 API 的一个未记录的细节。您可以向 Firebase Support 报告以获得他们的反馈。