当启动一个线程之后在线程中,动态刷新UI。
如果试图在 Run()函数中直接访问UI,那么会抛出异常
[Invalid thread access ]
这个时候,怎么解决呢?
需要启动一个UI线程,代码如下
Display.getDefault().asyncExec(new Runnable() {
public void run() {
}
}
这样这个问题转换成:其他线程对UI线程的访问。
但是仅仅这样还不够,还需要在App推出的时候关闭它
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
//关闭进程中的动作。
}
});
本文介绍了解决跨线程访问UI的问题方法。通过启动UI线程并使用Display.getDefault().asyncExec进行UI更新,避免了因尝试从非UI线程直接访问UI而引发的Invalid threadaccess异常。同时介绍了如何在应用程序退出时通过Runtime.getRuntime().addShutdownHook来关闭相关线程。
2125

被折叠的 条评论
为什么被折叠?



