我们什么时候需要在android应用程序中使用runOnUiThread?

时间:2012-04-13 04:46:07

标签: java android multithreading

我有一个代码示例,它使用此函数来运行线程runOnUiThread。我们为什么以及何时需要使用它?

修改

如何使用AsyncTask类,proscons ??

2 个答案:

答案 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是最好的选择。有几个   执行相同后台操作的其他方法   使用ServiceIntentService也可以进行后台操作。   使用AsyncTask将帮助您完成UI工作,也不会阻止   你的用户界面,直到你的后台操作正在进行。

来自文档 -

  

AsyncTask可以正确,轻松地使用UI线程。这个班   允许执行后台操作并在UI上发布结果   线程,而不必操纵线程和/或处理程序。

答案 1 :(得分:1)

要从线程更新userinterface,您需要使用runOnUiThread。但使用asynctask比使用runonuithread要好。 android-runonuithread-vs-asynctask此链接可以帮助您