我们平时在开发过程中,有时候会需要一些全局数据,来让应用中的所有Activity和View都可以访问的到,在这种情况下,可能首先想到的是自己定义一个类,然后创建很多静态成员,但是Android已经为我们提供了解决方案,具体如下:
在Android中,有个叫Application的类,我们可以在Activity中使用getApplication()方法来获得,它是代表我们的应用程序类,使用它可以代表当前应用的主题,资源文件中的内容等,我们可以继承,然后添加属于自己的全局属性。例如在开发游戏中,需要保存分数,那么我们就可以继承Application,代码如下:
public class GameApplication extendsApplication{
privateint score;
publicint getScore(){
returnscore;
}
publicvoid setScore(int score){
this.score=score;
}
}
这样我们就扩展了自己的属性,需要在Menifest.xml文件中将我们扩展后的Application类指定上去,代码如下:
<application android:name=".GameApplication"
android:icon="@drawable/icon"
android:label="@string/app_name">
这样指定好了之后,自定义的Application已经完成,这样可以在任何Activity和View中获取属性,代码如下:
//在Activity中设置分数
((GameApplication)getApplication()).setScore(100);
//在Activity中获取分数
((GameApplication)getApplication()).getScore();
在View中:
((GameApplication)getContext().getApplicationContext()).getScire();