什么是Android UiThread(UI线程)

有人可以解释一下UI线程究竟是什么?
在developer.android.com它说关于runOnUiThread函数

public final void runOnUiThread (Runnable action)

Since: API Level 1 Runs the specified action on the UI thread. If the
current thread is the UI thread, then the action is executed
immediately. If the current thread is not the UI thread, the action is
posted to the event queue of the UI thread.

UI线程是否意味着这将运行每次活动推送的背景由一些ui活动,如来电或屏幕调光等?如果没有,UI线程究竟包括什么?

谢谢

UIThread是您的应用程序的主要执行线程。这是大多数应用程序代码运行的地方。在此线程中创建所有应用程序组件(Activities,Services,ContentProviders,BroadcastReceivers),并且在此线程中执行对这些组件的任何系统调用。

例如,假设您的应用程序是单个Activity类。然后所有的生命周期方法和大多数事件处理代码在这个UIThread中运行。这些是像onCreate,onPause,onDestroy,onClick等方法。此外,这是所有的UI更新。任何导致UI被更新或改变的事情都发生在UI线程上。

For more info on your application’s Processes and Threads click here.

当你明确生成一个新线程在后台工作时,这段代码不会在UIThread上运行。那么,如果这个后台线程需要做一些改变UI的事情,会发生什么?这是runOnUiThread是什么。实际上,你应该使用处理程序(请参阅下面的链接了解更多信息)。它为这些后台线程提供了执行可以修改UI的代码的能力。他们通过将UI修改代码放在Runnable对象中并将其传递给runOnUiThread方法来实现。

For more info on spawning worker threads and updating the UI from them click here

我个人只使用runOnUiThread方法在我的仪器测试。由于测试代码不在UIThread中执行,因此您需要使用此方法来运行修改UI的代码。所以,我使用它来注入点击和键事件到我的应用程序。然后我可以检查应用程序的状态,以确保正确的事情发生。

For more info on testing and running code on the UIThread click here

http://stackoverflow.com/questions/3652560/what-is-the-android-uithread-ui-thread

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:什么是Android UiThread(UI线程)