Android Application类的使用
来源:互联网 发布:python串口编程实例 编辑:程序博客网 时间:2024/04/30 12:32
1.什么是Application?
源码中描述的大概意思是:Application类是保存全局变量的基类,我们可以自定义一个类继承Application,然后在AndroidManifest.xml的< application>标签下指定其名称,这样应用在启动的时候,它就被初始化了.
如,我们自己定义了一个CrashApplication.java,在AndroidManifest.xml中配置如下:
<application android:name="com.yootoo.download.CrashApplication"> .... </application>
android系统为每一个运行的程序创建一个Application类的对象,他的生命周期和整个程序的生命周期一样长,它以单例的形式存在.
2.在Application中做什么?
在Application类中,我们通常进行一些数值传递,数据缓存,初始化一些信息的操作.
2.1 传递数据
我们在Activity中传递数据,通常以putExtra()的形式,让Intent进行携带,或者把信息加入Bundle,传递基本数据类型比较方便,但是传递复杂数据类型就比较麻烦了,还需要实现Serializable或者Parcellable接口.
其实没有必要那么麻烦,我们可以在Application中创建一个HashMap,以字符串作为索引,Object为value,这样我们的HashMap就可以存储任何类型的对象了.比如我们需要将数据从Activity1传递到Activity2,只需要在Activity1中将数据保存到HashMap中,然后将索引传递到Activity2中,就在Activity2中根据索引取到数据了.
2.2 数据缓存
比如我们有一个Activity需要从网络缓存一些数据,获取完之后,就可以缓存到Application当中,当界面设置到其他Activity在回来,就可以直接用缓存的数据了.
这里需要注意,当需要缓存一些大量数据的时候,最好cache一些SoftReference(软引用),并把这些数据缓存到本地,如果Application中不存在,从本地缓存中去查找,如果本地还不存在,去网络获取.
3.注意事项
1)不在Application的OnCreate方法中进行耗时操作,否则直接影响程序的启动时间.
2)保存了不该保存的对象,会导致内存泄漏.
参考资料:
官方文档: http://www.android-doc.com/reference/android/app/Application.html
CSDN:http://blog.csdn.net/pi9nc/article/details/11200969
- android Application 类的使用
- android Application 类的使用
- Android Application类的使用
- Android Application的使用!
- Android Application 的使用
- Android application 的使用
- android的Application使用
- Android的application使用
- Android Application类的学习和使用
- Android中Application类的使用
- Android 中Application类的使用
- android-Application的使用-随心
- <Android>Application全局变量的使用
- Android中Application的使用
- android 中 application 的使用
- android的Application类
- Android的application类
- Application类的使用
- Mysql的基本语句(一)
- Java性能调优概述
- hubot安装初探
- 获取Linux系统short、int、long等各种数值类型最大最小值
- C语言——关于字符相同,删除字符的代码
- Android Application类的使用
- 性能调优笔记
- 找出没有出现过的数
- 使用python内建asyncore编写socket client
- require/require_once/include/include_once区别
- C语言——野指针
- 汉字编码及区位码查询算法
- Unicode数据类型(与ANSI关系和相互转化)
- C语言——关于指针传递指针