关于Android runnable的一个问题

关于Android runnable的一个问题,android,runnable,Android,Runnable,我在网上看到一段代码。我想知道为什么我们需要使用runnable来设置TextView的文本?谢谢 while (true) { // listen for incoming clients Socket client = serverSocket.accept(); handler.post(new Runnable() { @Override public void run() { serverStatu

我在网上看到一段代码。我想知道为什么我们需要使用runnable来设置TextView的文本?谢谢

    while (true) {
    // listen for incoming clients
    Socket client = serverSocket.accept();
    handler.post(new Runnable() {
        @Override
        public void run() {
            serverStatus.setText("Connected.");
        }
    });

这段代码在服务器线程中。UI(在本例中为edittext)只能在Uithread中更新。Runnable让您回到UI线程。
参考:)

此应用程序是多线程的,不是吗?在这种情况下,只有一个线程可以在UI上执行操作—UI线程。如果不手动创建新线程,则不必担心这一点。一旦您自己启动了一个新线程,并且希望它执行与UI相关的操作(例如更新serverStatus文本字段的文本),您就必须在UI线程上执行该操作。不遵守此规则将导致例外

用于在线程之间传递消息。在本例中,UI线程有一个处理程序,它是在创建服务器线程时作为参数发送的。每次需要更新UI时,它都会向UI线程发布一条消息,UI线程会定期检查新消息并执行附加到它们的可运行文件

下面是另一个链接(带示例),可以帮助您更好地理解它:

感谢您提供有关处理程序的信息。