android中application类的作用

来源:互联网 发布:fd抓包更改数据犯法么 编辑:程序博客网 时间:2024/05/18 01:24

文章出处:http://www.2cto.com/kf/201202/118039.html


android 开发中共享全局数据
我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有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;       }   }

这样我们就扩展了自己的属性,不过还没有结束,另外一个比较关键的一步,是需要在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(); 

在View中:

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

注:
在使用这种方式的时候可能会遇到getApplication返回null的情况,有可能是调用getApplication的时机不对,如果是在类未定义完成的地方(比如变量定义部分),此时无法得到实例,所以就会出现空指针







0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 刷机失败反复重启怎么办 红米手机很卡怎么办啊 红米2a显示图标怎么办 手机一直处于开机状态怎么办 vivo手机进水开不了机怎么办 魅蓝s6锁了怎么办 pos机刷卡刷多了怎么办 红米5a开不机怎么办 魅族双亲要密码怎么办? 苹果wi-fi网速慢怎么办 腾达宽带用户名密码忘了怎么办 无线网秘密忘了怎么办 wan口设置已断开怎么办 中兴手机忘记解锁图案怎么办 u盘显示参数错误怎么办 硬盘vc加密密码忘了怎么办 软件文件移动到其他盘打不开怎么办 u盘无法复制文件怎么办 u盘大文件不能拷怎么办 abc看图打印不了怎么办 百度云大文件慢怎么办 手机视频缩略图加载失败怎么办 电脑突然卡住不动了怎么办 word文档被锁住了怎么办 手机qq磁盘已满怎么办 不小心格式化了硬盘怎么办 移动硬盘插上显示要格式化怎么办 微信网络特别慢怎么办 苹果六网速太慢怎么办 小米手机wifi网速慢怎么办 苹果8蜂窝上网慢怎么办 苹果6s4g网速慢怎么办 苹果7上网速度慢怎么办 银行转账到别人账户怎么办 银行转账转错账户怎么办 人已故欠的公款怎么办 论文抄了表格数据怎么办 电子转账转错了怎么办 苹果手机付款方式有问题怎么办 合同中付款方式错怎么办? 优步付款方式无效怎么办