我有一个代码示例,它使用此函数来运行线程runOnUiThread
。我们为什么以及何时需要使用它?
如何使用AsyncTask
类,pros
和cons
??
答案 0 :(得分:19)
如果要从非UI线程更新UI,则必须使用runOnUiThread()
。例如 - 如果要从后台线程更新UI。你也可以使用Handler
来做同样的事情。
来自文档 -
在UI线程上运行指定的操作。如果当前线程是 UI线程,然后立即执行操作。如果是当前的 线程不是UI线程,操作被发布到事件队列 UI线程。
语法 -
Activity_Name.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// your stuff to update the UI
}
});
更新 -
AsyncTask -
如果你想做一些
Network operation
或任何阻止的事情 在这种情况下你的用户界面AsyncTask是最好的选择。有几个 执行相同后台操作的其他方法 使用Service
,IntentService
也可以进行后台操作。 使用AsyncTask将帮助您完成UI工作,也不会阻止 你的用户界面,直到你的后台操作正在进行。
来自文档 -
AsyncTask可以正确,轻松地使用UI线程。这个班 允许执行后台操作并在UI上发布结果 线程,而不必操纵线程和/或处理程序。
答案 1 :(得分:1)
要从线程更新userinterface
,您需要使用runOnUiThread
。但使用asynctask
比使用runonuithread
要好。 android-runonuithread-vs-asynctask此链接可以帮助您