开发Java程序时,使用public static方式的全局变量,这样虽然会给程序结构带来一定的方便,但也会带来一些风险。Android开发虽然可以使用与Java相同的方式,但是我们有更好的方法:Application context
我们知道每一个Activity都是一个Context,它包含了页面运行时的信息。而每一个Application也是一个Context,并且android保证它是程序中唯一存在的,因此可以通过Application context的方式更安全、优雅的实现全局变量。
1、创建继承Application类的子类MyApplication,并在Manifest文件中配置
<application
...
android:name="MyApplication"
...
</application>
2、在MyApplication类中创建想要全局使用的变量,并给出get、set方法
public class MyApplication extends Application {
private String mData;
public String getData() {
return mData;
}
public void setData(String data) {
mData = data;
}
}
这样mData就达到了全局静态变量的效果,而且更符合Android的架构。
3、使用方法
MyApplication myApp = (MyApplication) getApplication();
//或者
//MyApplication myApp = (MyApplication) getApplicationContext()
myApp.setData("Test");
myApp.getData();