gpt4 book ai didi

android - 使用 AsyncTask 类的简单计数器

转载 作者:行者123 更新时间:2023-11-29 02:26:37 25 4
gpt4 key购买 nike

这是一个使用 AsyncTask 类的简单计数器:

   static private class AsyncTaskRunner extends AsyncTask<Integer, Integer, Integer> {

@Override
protected Integer doInBackground(Integer...prams) {
while(t){
i++;
publishProgress(i);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

return null;
}


@Override
protected void onPostExecute(Integer result) {

}


@Override
protected void onPreExecute() {

}


@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
Textview.setText(String.valueOf(values[0]));
}
}

i 是一个整数女巫,每 0.2 秒上升一次,它的值显示在 Textview 中。因此,当我运行我的应用程序时,i 的值显示在 textview 中,并使用 asynctask 类快速增加和更新。这是我的问题:为什么有时我的 TextView 显示较小的 i 值,例如在 54 之后它显示 53 然后再次上升!

最佳答案

onProgressUpdate(Progress...), invoked on the UI thread after a call to publishProgress(Progress...). The timing of the execution is undefined. This method is used to display any form of progress in the user interface while the background computation is still executing. For instance, it can be used to animate a progress bar or show logs in a text field.

无法保证 UI 线程上的更新时间,因此您可能会看到事件按照您描述的顺序出现。您可能希望为您的进度添加逻辑,以根本不减少该值而只增加该值,如果该值小于您上次看到的值,则基本上跳过该值。

关于android - 使用 AsyncTask 类的简单计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51886046/

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