什么时候活动的实例变量被初始化?

时间:2016-03-22 11:36:28

标签: java android android-activity

在我的Android应用程序中,我有一个奇怪的错误。像下面这样的实例变量在运行时意外地分配给它的默认值(在这种情况下为false)。什么时候在android活动中初始化这种类型的变量?

public class MainActivity extends Activity {
    private boolean isInitialized = false;  // <- When do this variable get initialized?
}

2 个答案:

答案 0 :(得分:3)

创建实例时,将初始化Java中的实例变量。

大部分时间对象都会使用new进行实例化。

如果是活动,它们将由Android框架使用反射进行实例化(请参阅Instrumentation#newActivity())。然后执行Context的初始化,并在实例上调用活动onCreate()

有关详细信息,请查看ActivityThread source

答案 1 :(得分:0)

Java没有“全局变量”。

您在谈论instance variables。每次创建新实例时都会初始化它们。