在代码中经常看到application这个类,一直不知道这个是干什么用的,今天刚好有点时间,所以进行了详细的学习。
一.先对它的整体概念解释:
在android源码中对他的描述是;
<wbr><wbr><wbr><wbr>SDK中的描述:Application类是为了那些需要保存全局变量设计的基本类,你可以在AndroidManifest.xml的标签中进行自己的实现,这样的结果是:当你的application或者包被建立的时候将引起那个类被建立。<br><br>
理解:就是说application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。所以当我们需要创建全局变量的时候,不需要再像j2se那样需要创建public权限的static变量,而直接在application中去实现。只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应的处理。</wbr></wbr></wbr></wbr>
android 开发中共享全局数据
<wbr>我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Activity和View都能访问到,大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员,不过android已经为我们提供了这种情况的解决方案,下面就来介绍一下:<br><wbr><br><wbr><wbr><wbr><wbr>在Android中,有一个名为Application的类,我们可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。例如我们在开发一个游戏应用,需要保存分数,那么我们就可以继承Application,代码如下:<br><wbr>public class GameApplication extends Application {<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>private int score;<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>public int getScore() {<wbr><wbr><wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>return score;<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>}<wbr><wbr><wbr></wbr></wbr></wbr></wbr>
<wbr>public void setScore(int score) {<wbr><wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>this.score = score;<wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>}<wbr><wbr></wbr></wbr></wbr>
<wbr>}<br>
复制代码<br>
这样我们就扩展了自己的属性,不过还没有结束,另外一个比较关键的一步,是需要在androidManifest.xml文件中将我们扩展后的Application类指定上去,例如下面的代码:<br><wbr><br>
1 <wbr><br>
复制代码<br>
这样指定好之后,我们的自定义Application就算完成了,然后我们可以很方便的在任何Activity和View中来获取我们的分数属性,代码如下:<br><wbr><br>
在Activity中:<br>
1 //设置分数<wbr><wbr>2 ((GameApplication)getApplication()).setScore(100)<wbr>3<wbr><wbr>4 //获取分数<wbr><wbr>5 ((GameApplication)getApplication()).getScore();<wbr><br>
复制代码<br>
在View中:<br>
1 ((GameApplication)getContext().getApplicationContext()).getScore()<wbr><br><wbr><br>
注:<br>
在使用这种方式的时候可能会遇到getApplication返回null的情况,有可能是调用getApplication的时机不对,如果是在类未定义完成的地方(比如变量定义部分),此时无法得到实例,所以就会出现空指针<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
二.里面的方法进行说明:
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>onCreate();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>这个函数是当我们的应用开始之时就被调用了,比应用中的其他对象创建的早,这个实现尽可能的快一点,因为这个时间直接影响到我们第一个activity/service</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>/receiver。如果你要重写这个方法必须调用super.onCreate().</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>onTerminate():</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>这个函数是模拟一个过程环境,在真机中永远也不会被调用。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
Android Application 对象介绍
文档详细介绍了Android的运行机制,Application类的作用和使用方法,读过之后终于不再一知半解了!
Android Application Development Android Application Development Android Application Development Android Application Development Android Application Development Android Application Development
A Study of Android Application Security 学术论文
android application
Android Application Security.pdf
Android application structure 12 Application signing 15 Data storage on the device 15 Crypto APIs 16 Device Administration 17 Summary 17 Chapter 2: Application Building Blocks 19 Application ...
Android中用Application类实现全局变量
Android Application Programming with OpenCV 英文版
professional android application development 英文版,权威android 开发指南,带例子
Android Application Development For Dummies
Professional Android Application Development--来自网络 仅供学习 如有侵权 请联系删除
Android 红皮书,从入门到精通,由浅入深,出门必备。
Android Application development for Dummies android 开发 适合初学者。
Android Application Secure Design/Secure Coding Guidebook 一书的代码
Android Application插件例子程序
Android Application Development: Programming with the Google SDK 电子书 Rick Rogers (Author), John Lombardo (Author), Zigurd Mednieks (Author), G. Blake Meike (Author) Paperback: 336 pages Publisher: ...
Android Application Development for Dummies.pdf
Adding Logging Support to Your Android Application 83 Adding Some Media Support to Your Application 84 Adding Location-Based Services to Your Application 88 Debugging Your Application on Hardware 90 ...