gpt4 book ai didi

java - Android - 在运行任务时更新 UI?

转载 作者:行者123 更新时间:2023-12-01 12:37:54 25 4
gpt4 key购买 nike

我之前曾询问过,但没有收到任何有用的答复。我有一个方法。我想通过该方法更新UI。我尝试过在 UI 线程上运行代码,我尝试过发布代码 (.post[...]),我尝试过创建线程但没有任何效果。

这是我的代码的简化版本:

int x;
for(int i = 0; i < times; i++){
if((i % 2) == 1){
x += (x / (x * 0.5));
} else {
x += (x / (x * 0.25));
}
while((System.currentTimeMillis() - t) < 2000){
// wait
}
runOnUiThread(new Runnable(){
@Override
public void run(){
btn.setText(x.toString());
}
}
} // The for loop won't update the UI until the entire method has finished.

就像我说的,创建一个新线程/在 UI 线程上运行/发布没有帮助。如何在方法运行时更新 UI?

出于某种原因,UI 将等待该方法完成。

最佳答案

For some reason the UI will wait until the method has finished.

您对 setText() 的调用会安排屏幕更新,但在您将主应用程序线程的控制权返回给框架之前,该更新不会发生。只要您占用该线程,屏幕就不会更新。

How can I update the UI while a method is running?

如果该方法在主应用程序线程上运行(如果上面的代码 fragment 没有崩溃,您的线程也必须如此),则您无法在其运行时更新 UI。

您可能希望提出一个新的 Stack Overflow 问题,在其中解释您真正想要做什么。在你的original question ,您引用了一个动画,但您没有提供与该动画相关的代码,也没有提供 runIntectiveMethod() 的实现。

关于java - Android - 在运行任务时更新 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407097/

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