gpt4 book ai didi

android - 从线程更新 textView

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:47 24 4
gpt4 key购买 nike

在我的 OnCreate 方法中,我创建了一个线程来监听传入的消息!

In OnCreate() {

//Some code

myThread = new Thread() {

@Override

public void run() {

receiveMyMessages();

}
};
myThread.start();

// Some code related to sending out by pressing button etc.

}

Then, receiveMyMessage() functions…

Public void receiveMyMessage()
{

//Receive the message and put it in String str;

str = receivedAllTheMessage();

// << here I want to be able to update this str to a textView. But, How?
}

我检查了this article但它对我不起作用,运气不好!

最佳答案

Android 应用程序中对 UI 的任何更新都必须在 UI 线程中进行。如果您生成一个线程在后台工作,您必须在触摸 View 之前将结果编码回 UI 线程。您可以使用 Handler 类来执行编码(marshal)处理:

public class TestActivity extends Activity {
// Handler gets created on the UI-thread
private Handler mHandler = new Handler();

// This gets executed in a non-UI thread:
public void receiveMyMessage() {
final String str = receivedAllTheMessage();
mHandler.post(new Runnable() {
@Override
public void run() {
// This gets executed on the UI thread so it can safely modify Views
mTextView.setText(str);
}
});
}

AsyncTask 类为您简化了很多细节,您也可以研究一下。例如,我相信它为您提供了一个线程池,以帮助减轻每次您想执行后台工作时生成新线程的相关成本。

关于android - 从线程更新 textView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5400288/

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