gpt4 book ai didi

android进度对话框不显示百分比

转载 作者:行者123 更新时间:2023-11-30 04:14:52 26 4
gpt4 key购买 nike

如果我使用代码,对话框不显示百分比

    final Handler handler = new Handler() {
public void handleMessage(Message msg) {
int total = msg.arg1;
mProgressDialog.setProgress(total);
if (total >= 100){
try {
mProgressThread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
mProgressThread.setState(ProgressThread.STATE_DONE);
}
}
};

在线程代码中

while ((count = input.read(data)) != -1) {
total += count;
Message msg = mHandler.obtainMessage();
msg.arg1 = total;
mHandler.sendMessage(msg);
output.write(data, 0, count);
}

怎么了?如果我使用总++;而不是总数+=计数;比例提高到 19% 但没有提高到 100%。这是因为文件下载速度比 while 循环 100 次迭代快。如果我使用 total += count;它显示 0,但比例为 100%,文件已下载。

最佳答案

您似乎没有将任何百分比信息传递给处理程序,而是传递了读取字符的绝对总数。当你写 total++;您传递读取例程接收数据的次数以及写入总计+ =计数的时间;在完整的阅读例程中,您传递了您阅读的所有字符的总数。

如果要显示百分比,则需要传入 0-100 的进度。为此,您需要知道总共要读取多少个字符并写入 total +=count;并传递 total/CountOfAllCharactersToRead。这样您就可以正确地将 % 分数分配给进程对话框。

只是另一个评论。如果您的阅读速度非常快,可能会发生 UI 不经常更新的情况,您将看不到实际从 0 到 100 的进度条。

关于android进度对话框不显示百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10200500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com