在Java中如果要使用全局变量,一般定义public static类型的变量。但是这种方法不符合Android的框架架构,Android中要使用Application context。
Application是一个基类,这个基类的作用是获取整个App的状态,我们需要自己定义一个类来继承这个基类。代码如下:
我们定义了一个MyApplication继承自Application,并定义了一个全局变量mHasPassword,然后复写基类的onCreate方法,onCreate负责对所有全局变量赋初期值。
我们还需要把自定义的Application类添加到AndroidManifest.xml里面,代码如下:
这样做的目的:App的进程被创建的时候,这个类就会被实例化,onCreate方法就会被执行,给所有全局变量赋初期值。
这样,所有的Activity就共同拥有这个类里面的变量了。
下面用两个Activity来测试一下,当一个Activity改变了全局变量的值之后,看看另一个Activity能不能取到改变后的值。
ApplicationDemoActivity.java
AnotherActivity.java
main.xml
another.xml
运行一下看看结果。