Android中Application的使用

初学Android的朋友都是最先接触的Activity,对Application比较陌生,这里讲解下。

什么是Application

     Application和Activity,service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储该程序的一些信息。通常我们是不需要创建一个Application的,系统会自动帮我们创建,这就是我们只写Activity能成功运行的原因。
     
     当我们自己创建Application时,只要创建一个类继承至Application,并在manifest的Application标签中写上我们创建的类名称就可以了。
     
     举例来说,我新建了一个继承至Application的MyApp类,在manifest的Application标签添加如下:
     
     android:name = "com.ctrlz.csdnblog.MyApp"
     
     这就相当于我们指定了该程序的Aplication是MyApp。

     android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类。且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享等,数据缓存,管理Activity等操作。(从manifest也能看出来Aplication是包含Activity的)
     
     这种关系有点像Activity和Fragment。


使用举例
     
     1、数据传输,暂存数据

     当我们在Activity  A传数据至Activity B时,通常使用Intent携带参数传输,但是当我们再将数据从Activity  B传至Activity  C时,又得写一遍,十分繁琐。

     这时候就可以在Application中设置变量,在A中set赋值,在B和C中直接get获取边可以了。

     2、管理Activity

     一个程序Activity的数量是很多的,有的甚至达到200多。当我们退出程序时,也许有一些Activity忘了finish(),留在屏幕上,出现bug。
     
     这时候,我们便可以在Application中新建一个Activity的List,添加AddActivity和removeActivity的方法。同时,新建一个BaseActivity,在OnCreate方法中调用Application的Add方法,这样只要是在程序中继承在BaseActivity的类,都被添加在List当中,在退出程序时调用Application的removeActivity方法就能把所有的Activity finish()掉。

     3、管理全局变量、状态
     
     通常一个软件没有登录也是能浏览的,当我们登录后,我们可以保存是否登录的信息,账号信息等等。

附:
     Android中的程序什么时候退出是有系统决定的,程序只能决定Activity等其他组件的退出。

ctrlz+presents!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章