我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Activity和View都能访问到,大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员,不过android已经为我们提供了这种情况的解决方案,下面就来介绍一下:

  在Android中,有一个名为Application的类,我们可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。例如我们在开发一个游戏应用,需要保存分数,那么我们就可以继承Application,代码如下:

  public class GameApplication extends Application {

  private int score;

  public int getScore() {

  return score;

  }

  public void setScore(int score) {

  this.score = score;

  }

  }

  public class GameApplication extends Application {

  private int score;

  public int getScore() {

  return score;

  }

  public void setScore(int score) {

  this.score = score;

  }

  }

  这样我们就扩展了自己的属性,不过还没有结束,另外一个比较关键的一步,是需要在androidManifest.xml文件中将我们扩展后的Application类指定上去,例如下面的代码:

  < application

  android:name=".GameApplication"

  android:icon="@drawable/icon"

  android:label="@string/app_name">

  这样指定好之后,我们的自定义Application就算完成了,然后我们可以很方便的在任何Activity和View中来获取我们的分数属性,代码如下:

  在Activity中:

  //设置分数

  ((GameApplication)getApplication()).setScore(100)

  //获取分数

  ((GameApplication)getApplication()).getScore();

  //设置分数

  ((GameApplication)getApplication()).setScore(100)

  //获取分数

  ((GameApplication)getApplication()).getScore();

  在View中:

  ((GameApplication)getContext().getApplicationContext()).getScore()

更多相关文章

  1. Android 实现语音识别的完整代码
  2. Android 中使用代码动态网格布局
  3. Android清单文件详解(六) ---- 节点的属性
  4. android Kotlin 继承、派生、接口、构造方式,方法、属性重写
  5. Android之布局属性重点
  6. 安卓视频播放器 一行代码快速实现视频播放,Android视频播放,Androi
  7. Android Zip文件解压缩代码
  8. Android如何完全调试framework层代码

随机推荐

  1. android bitmap溢出问题完美解决方案
  2. android的popuwindow的使用
  3. Android中的服务(service)详解(一)
  4. LK based Android bootloader
  5. android 动态 布局
  6. Android 更新升级版本
  7. CCS5,1
  8. 初学Android,使用Drawable资源之使用Stat
  9. android核心技术之ANR分析(MTK)
  10. android 通知栏点击事件及8.0适配