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


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

view plain copy to clipboard print ?
  1. publicclass GameApplication extends Application {

  2. privateint score;

  3. publicint getScore() {

  4. return score;

  5. }

  6. publicvoid setScore(int score) {

  7. this.score = score;

  8. }

  9. }


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

  1. <application

  2. android:name=".GameApplication"

  3. android:icon="@drawable/icon"

  4. android:label="@string/app_name">


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

在Activity中:

  1. //设置分数

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

  3. //获取分数

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


在View中:

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


更多相关文章

  1. android EditText设置不可写
  2. android 使用html5作布局文件: webview跟javascript交互
  3. android studio调试c/c++代码
  4. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
  5. 锁屏界面
  6. android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序
  7. Android(安卓)version and Linux Kernel version
  8. Android(安卓)闹钟管理类的使用
  9. Android学习篇之Menu的使用

随机推荐

  1. Android实时获取音量(单位:分贝)
  2. 让你认识Android(安卓)开发简介及应用程
  3. Android(安卓)UI之实现Material化的下拉
  4. Android(安卓)极光IM简单的聊天界面全手
  5. Android(安卓)6.0 开始声明权限的变更
  6. Android(安卓)监听系统媒体音量变化
  7. Android把svg图片转为jpg保存到相册图库
  8. Skia深入分析9——延迟渲染和显示列表
  9. android 数独小游戏
  10. Android(安卓)自定义 View 实现跑马灯效