本文转载自: http://www.pin5i.com/showtopic-android-application-level-variable-global-variable.html

Android 应用程序开发中,有的时候我们在应用程序的任何一个地方都需要访问一个全局变量,也就是在任何一个Activity中都可以访问的变量。它不会因为Activity的生命周期结束而消失。要实现应用程序级的变量,我们可以通过Application这个类来实现。

首先,我们新建一个类HelloApplication继承Android.app.Application类,然后在我们的类中增加一些变量。如下所示:

  1. public class HelloApplication extends Application {
  2. private int globalVariable=1;
  3. public int getGlobalVariable() {
  4. return globalVariable;
  5. }
  6. public void setGlobalVariable(int globalVariable) {
  7. this.globalVariable = globalVariable;
  8. }
  9. }
复制代码

然后在应用程序配置 文件AndroidManifest.xml中进行相应的配置,如下图所示:

未命名.jpg (35.11 K)
2010-8-28 8:25:40



完成之后,我们在应用程序的任何一个Activity中可以通过如下方法访问我们的变量:

  1. ((HelloApplication)getApplication()).setGlobalVariable(10);
  2. int valiable=((HelloApplication)getApplication()).getGlobalVariable();
复制代码

怎么样? 是不是很简单?

Application对象只有在应用程序中所有Activity都destroy时才会destrory,所有我们可以在任何一个Activity中访问它。

那么为什么我们不能使用static 变量来存放全局变量呢?如下所示:

  1. public class DataStoreClass {
  2. private static int globalVariable=1;
  3. public static int getGlobalVariable() {
  4. return globalVariable;
  5. }
  6. public static void setGlobalVariable(int newGlobalVariable) {
  7. globalVariable = newGlobalVariable;
  8. }
  9. }
复制代码

通过这种方式,DataStoreClass类可能会像Activity一样在某些时候被android系统强行销毁。所以在应用程序运行期间,DataStoreClass的值可能会丢失,或得到一些您不想要的值。(文/ideasandroid )

更多相关文章

  1. android sudio 快捷键
  2. Android(安卓)中activity实现全屏无标题栏透明
  3. 《Android(安卓)高性能编程》—— @IntDef 注解,减缓枚举的使用
  4. Windos下Android(ADT Bundle)配置NDK的两种方法------ADT、Cygwin
  5. Android(安卓)权限
  6. 关于android窗口的特效
  7. 使用Kotlin开发Android(安卓)扩展函数(Extensions)
  8. Android十八章:Realm-in-android
  9. 【5.30】android开发环境的搭建

随机推荐

  1. ch016 Android(安卓)自定义对话框.
  2. ANDROID 绝对布局 相对布局 Linear…
  3. Android(安卓)Studio 布局属性笔记
  4. android 带文字的ImageButton
  5. ch028 Android(安卓)断点续传
  6. Android(安卓)之 五大布局案例
  7. 自定义动画(animation)时set中的各元素效
  8. android dumpsys
  9. Android日记抓取并保存
  10. Android(安卓)控件使用参数集锦