【发布时间】:2015-01-14 17:01:33
【问题描述】:
当我发现像 WinForms 一样,Android 需要从主线程进行 UI 更新时,我一直在阅读 UI 更新(太糟糕了,我希望有人能一劳永逸地解决这个恼人的问题) .
无论如何,我需要将它传递给 UI 线程。有些人建议使用 runOnUiThread 方法,如果不是因为那个恼人的“final”然后起作用的话,那可能会奏效。
我有一个接口,但我无法更改其方法。它看起来像这样:
@Override
public void connStateChange(ClientHandler clientHandler)
当我的连接状态(网络)发生变化时调用该方法。当我这样做时,我需要做一些事情,在这种情况下,它正在向 TextView 添加一些文本。
所以我尝试了这个,但当然变量“clientHandler”不是最终的:
@Override
public void connStateChange(ClientHandler clientHandler) {
runOnUiThread(new Runnable()
{
public void run()
{
tv.append(clientHandler.getIP() + ", " + clientHandler.state.toString() + "\n");
if (clientHandler.state == State.Connected)
{
tv.append("Loginserver hittad");
}
}
});
}
在这个示例中,我如何以一种漂亮、简洁和高效的方式编写代码来更新 UI?我需要访问我的所有变量等...
【问题讨论】:
标签: android user-interface final