首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase下载进度栏

Firebase下载进度栏
EN

Stack Overflow用户
提问于 2017-04-04 20:57:32
回答 1查看 1.5K关注 0票数 0

我想显示一个下载进度条,以显示用户在我的应用程序继续下一个活动之前还需要下载多少字节(而不是只显示一个黑色屏幕)。我尝试过使用以下代码:

代码语言:javascript
复制
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:“任务”是FileDownloadTask类型的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-05 15:22:32

当下载的onProgress() onProgressListener第一次被调用时,getBytesTransferred() == 0getTotalByteCount() == -1。在随后的调用中,总字节数是正确的。我不知道这是一个bug,还是仅仅是API的一个未记录的细节。你可以向火力支援报告以获得他们的反馈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43217582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档