Android,实例化实例变量,什么线程?

时间:2012-12-21 18:18:53

标签: android multithreading handler android-progressbar

所有

我正在研究具有与其他实例变量一起声明和实例化的处理程序的代码:

public class SomeActivity extends Activity {
    Handler handler = new Handler();  // What thread is this taking place on?
    // rest of class omitted
}

它是否在UI线程上实例化?我希望如此,因为它用于将Runnable发布到ProgressBar,我的理解是ProgressBar只应在UI线程上操作。

Android文档说在onCreate()中创建的东西是:

  

应用程序的活动在应用程序的UI线程上运行。一旦   UI被实例化,例如在活动的onCreate()中   方法,然后与UI的所有交互必须在UI线程中运行。“

但这是在onCreate()之前发生的。

感谢您提供任何信息,

迈克尔

2 个答案:

答案 0 :(得分:0)

  

它是否在UI线程上实例化?

是。处理程序将存在于创建它的Thread中。您正在主/ UI线程上创建自己的,因此它可以访问UI元素。

  

但这是在onCreate()之前发生的。

这不会影响处理程序运行的Thread。

答案 1 :(得分:0)

除非您在后台线程上专门运行它,否则一切都发生在主线程(也就是UI线程)上。所以,是的,您的处理程序是在UI线程中创建的。