当前位置: 首页 > 面试题库 >

我们何时需要在android应用程序中使用runOnUiThread?

燕俊明
2023-03-14
问题内容

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

编辑

怎么样来使用AsyncTask类,什么是proscons


问题答案:

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线程上发布结果,而无需操纵线程和/或处理程序。



 类似资料:
  • 问题内容: 我见过的每一个tkinter教程都声称必须绘制窗口并处理事件,并且它们总是调用此函数,即使在hello world程序中也是如此。但是,当我在交互式外壳程序中尝试这些方法时,可以正确绘制窗口,而不必调用mainloop。 这个在tkinter中嵌入matplotlib图形的示例产生了一个相对复杂的应用程序,它具有用于在tkinter窗口内平移,缩放和调整图大小的按钮,而且,如果您删除对

  • 我们在一个Java文件中编写一个代码,使用Gradle我们可以编译Java文件和资源文件,并制作一个APK,所以这里有一个疑问,为什么我们需要android SDK?

  • 我是Android新手,我正在尝试使用UI线程,所以我写了一个简单的测试活动。但我想我误解了什么,因为点击按钮,应用程序不再响应

  • 我试图开发一个android应用程序,可以擦除其他应用程序的缓存数据,我试图浏览所有的博客,但没有一个对我有效,我可以通过以下代码清除我的应用程序的缓存 我想清除其他应用程序的缓存,可以任何机构请帮助我,如果我错了请纠正我,提前谢谢。

  • 我试图理解我们什么时候需要使用这个应用程序。在我们的node Express中使用 当我在网上搜索时,我在reddit上偶然发现了这个答案,它说明了应用程序之间的区别。获取和应用程序。使用 在此基础上,我总结了以下几点。 充当超级路由或中间件?这意味着它在? 此外,如果有人能添加更多关于app.use.的信息/练习,我将不胜感激