开发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();