18

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

编辑

什么是使用AsyncTask类,什么是proscons??

4

2 回答 2

22

runOnUiThread()当你想从非 UI 线程更新你的 UI 时,你必须使用它。例如,如果您想从后台线程更新您的 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或任何事情来阻止你的 UI 在这种情况下 AsyncTask 是最好的选择。还有其他几种方法可以执行与您可以使用的相同的后台操作ServiceIntentService也可以执行后台操作。使用 AsyncTask 将帮助您完成 UI 工作,并且在您的后台操作正在进行之前不会阻塞您的 UI。

从文档 -

AsyncTask 允许正确和轻松地使用 UI 线程。此类允许在 UI 线程上执行后台操作并发布结果,而无需操作线程和/或处理程序。

于 2012-04-13T04:48:35.120 回答
1

要从线程更新userinterface,您需要使用runOnUiThread. 但是使用asynctask比使用更好runonuithreadandroid-runonuithread-vs-asynctask这个链接可以帮助你

于 2012-04-13T04:58:52.010 回答