【问题标题】:progress bar and multiple download进度条和多次下载
【发布时间】:2013-03-30 22:41:54
【问题描述】:

我想在一个进度条中下载多个文件(暂时 2 个)(不重置进度条)

为了做到这一点,我检索了所有文件的总长度,以便在发布进度方法中使用它

问题是我的进度条在达到 50% 后重置为 0,然后再次递增直到另一个 50%

这是我的代码

@Override
        protected Void doInBackground(Void... params) {
            int totalSizeFile;
            totalSizeFile=cm.getLength(url[0]);
            totalSizeFile+=cm.getLength(url[1]);
            progressBar.setMax(totalSizeFile);

            cm.downloadMp3(url[0], "test.mp3", totalTailleFic);
            cm.downloadMp3(url[1], "test2.mp3", totalTailleFic);


            return null;            

        }

        @Override
        protected void onProgressUpdate(Integer... progress) {

            textview.setText(String.valueOf(progress[0])+"%");
            progressBar.incrementProgressBy(progress[0]);


        }

我调用 publishprogress 方法的下载函数的代码

byte[] buffer = new byte[1024];
            int bufferLength = 0;
            int total=0;
            while ((bufferLength = inputStream.read(buffer)) != -1) {
            total += bufferLength;
            fileOutput.write(buffer, 0, bufferLength);

            asynch.publishProgress(bufferLength);

            }

非常感谢

【问题讨论】:

    标签: android android-asynctask progress-bar


    【解决方案1】:

    您的ProgressBar 在下载之间重置为零,因为变量total 也重置为零。

    为了跟踪当前进度,进度条必须使用progressBar.incrementProgressBy() 递增,而不是使用progressBar.setProgress() 设置值。

    这意味着publishProgress()onProgressUpdate() 方法也必须修改为处理increment 而不是progress。而且,增量是你的bufferLength

    asynch.publishProgress(bufferLength);
    

    您还必须使用progressBar.setMax() 两次下载的总字节数初始化您的ProgressBar

    【讨论】:

    • 你好。感谢您的帮助,但是如果我尝试 incrementProgressBy ,现在我的进度条会立即填满而没有块
    • 但确实每次下载之间 OnProgressUpdate 的进度变量都重置为 0。
    • 使用setMax() 用总字节数初始化ProgressBar(见编辑)。
    • OnProgressUpdate()Progress 参数上放什么并不重要。它可以是实际的进度、增量,甚至只是表示一个步骤。只需将该值视为 increment 并将其发送至incrementProgressBy()
    • 谢谢。我更新了我的代码,但现在我什至看不到进度条增加。
    猜你喜欢
    • 2020-05-13
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    相关资源
    最近更新 更多