0

我在 AsyncTask 的 doInBackground 方法中有这段代码:

    for (int i = 0; i < lenght; i++) {
        // Do something

        count++;
        publishProgress(count * 100 / lenght);
    }

一切正常。如果我添加另一个操作,如何用进度条反映这一点?

现在我有这个代码:

    for (int i = 0; i < lenght1; i++) {
        // Do something

        count++;
        publishProgress(count * 100 / lenght1);
    }

    for (int i = 0; i < lenght2; i++) {
        // Do something 

        count++;
        publishProgress(count * 100 / lenght2);
    }

如何在操作 1 开始时使条形图从 0 开始,在操作 2 结束时在 100 结束?我试图将 count*100 更改为 count*50 但这似乎不是正确的方法......

4

1 回答 1

1

找到一个涉及length1和length2的算术公式,相应地公布进度。

例如,如果您想对计数的每次增加赋予相同的权重,并且 100% 表示计数 == length1+length2,那么您可以使用如下内容:publishProgress(count * 100 / (length1+length2));

于 2014-08-20T17:55:49.950 回答