我有一个使用此函数运行线程的代码示例runOnUiThread
。为什么以及何时需要使用它?
编辑
什么是使用AsyncTask
类,什么是pros
和cons
??
我有一个使用此函数运行线程的代码示例runOnUiThread
。为什么以及何时需要使用它?
什么是使用AsyncTask
类,什么是pros
和cons
??
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 是最好的选择。还有其他几种方法可以执行与您可以使用的相同的后台操作Service
,IntentService
也可以执行后台操作。使用 AsyncTask 将帮助您完成 UI 工作,并且在您的后台操作正在进行之前不会阻塞您的 UI。
从文档 -
AsyncTask 允许正确和轻松地使用 UI 线程。此类允许在 UI 线程上执行后台操作并发布结果,而无需操作线程和/或处理程序。
要从线程更新userinterface
,您需要使用runOnUiThread
. 但是使用asynctask
比使用更好runonuithread
。android-runonuithread-vs-asynctask这个链接可以帮助你