gpt4 book ai didi

Android 处理程序不更新 textview

转载 作者:行者123 更新时间:2023-11-29 14:05:29 24 4
gpt4 key购买 nike

想我会与大家分享一些奇怪的代码,看看我是否做错了什么。我已经将处理程序传递给后台线程以更新主 Activity 的 UI(我知道这不是最好的方法,但这应该是一个快速而肮脏的测试应用程序)基本上,代码将一条消息附加到 textview,如下所示:

                    uiHandler.post(new Runnable() {
@Override
public void run() {
Log.i("Text2Server", "Updating log with: " + logput);
logTextView.append(logput);
}
});

每次收到 UDP 消息时都会发生这种情况,每次都会完美地输出日志,但 TextView 仅在第一条消息上更新,或者有时根本不更新。

我认为这与我的 TextView 有关,但我想我会看看是否有人看到过类似的东西?

谢谢!

附言我尝试了基础知识,例如使用 setText() 而不是 append() 等。

最佳答案

它是否在 LogCat 中输出 "Text2Server", "Updating log with: "+ logput

.post(Runnable r) 这个 runnable 被放置在队列中,稍后将在附加的线程执行时运行。

也许,处理程序无法访问 ui 线程,这个假设也可能是错误的。

换个方式试试。

实例化处理程序:

 Handler handler = new Handler(){

@Override
public void handleMessage(Message msg) {
String logPutFromThread=msg.getData().getString("somekey");
Log.i("Text2Server", "Updating log with: " + logPutFromThread);
logTextView.append(logPutFromThread);
}

};

并从线程的Runnable

Runnable updateActivityUi = new Runnable(){

@Override
public void run() {

//do something before you send the message
Message msg = new Message();
msg.peekData().putString("somekey", logput)
handler.sendMessage(msg)


}};

关于Android 处理程序不更新 textview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298881/

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