我在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开始?我试图将计数* 100更改为计数* 50,但似乎不是正确的方法......
答案 0 :(得分:1)
找到涉及length1和length2的算术公式,以相应地发布进度。
例如,如果你想为每次增加的计数赋予相同的权重而100%意味着计数== length1 + length2,那么你可以使用这样的东西:publishProgress(count * 100 / (length1+length2));