在我的Android应用程序中,我有一个奇怪的错误。像下面这样的实例变量在运行时意外地分配给它的默认值(在这种情况下为false)。什么时候在android活动中初始化这种类型的变量?
public class MainActivity extends Activity {
private boolean isInitialized = false; // <- When do this variable get initialized?
}
答案 0 :(得分:3)
创建实例时,将初始化Java中的实例变量。
大部分时间对象都会使用new
进行实例化。
如果是活动,它们将由Android框架使用反射进行实例化(请参阅Instrumentation#newActivity()
)。然后执行Context
的初始化,并在实例上调用活动onCreate()
。
有关详细信息,请查看ActivityThread
source。
答案 1 :(得分:0)
Java没有“全局变量”。
您在谈论instance variables
。每次创建新实例时都会初始化它们。