gpt4 book ai didi

android - 关于Android runnable的一个问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:03 25 4
gpt4 key购买 nike

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

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

http://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/

最佳答案

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

Handlers用作在线程之间传递消息的一种方式。在这种情况下,UI 线程有一个处理程序,它是在创建服务器线程时作为参数发送的。每次需要更新 UI 时,它都会向 UI 线程发布一条消息,该线程会定期检查新消息并执行附加到它们的 Runnables。

这是另一个链接(带有示例),可以帮助您更好地理解它: http://developer.android.com/guide/appendix/faq/commontasks.html#threading

关于android - 关于Android runnable的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4504820/

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