Firebase下载进度条

时间:2017-04-04 20:57:33

标签: android firebase firebase-storage

我想显示一个下载进度条,向用户显示在我的应用继续下一个活动之前剩余的字节数(而不是只显示黑屏)。我尝试使用此代码:

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();
            }

        });

但总字节数仅返回-1。我做错了什么?

编辑:文件肯定存在,因为它被正确下载并稍后在应用程序中使用。

编辑2:&#34;任务&#34;是FileDownloadTask类型。

1 个答案:

答案 0 :(得分:1)

第一次调用下载onProgress()的{​​{1}}时onProgressListenergetBytesTransferred() == 0。在后续调用中,总字节数是正确的。我不知道这是一个错误还是仅仅是一个未记录的API细节。您可以向Firebase Support举报,以获得他们的反馈。