Android的Application误区

误点1

Application在Dalvik中只存在一个,所以不用再去傻乎乎的写单列去获取对象了.如果一个App中存在多进程(注意进程和线程的区别)的话,那么会存在多个Dalvik.

误点2

Application 有两个子类,一个是MultiDexApplication(对于APP出现65536的问题他会帮助你的解决问题),MockApplication(测试用例驱动(TDD)开发模式中使用Moke进行测试时).

误点3

在Application中可以进行一些配置的初始化,如图片加载,网络配置等.在Application.onCreate()中不要进行耗时操作,需要的耗时操作可以通过懒加载的,异步,延时加载的方式记性操作.对于这个时间界限是多少秒,或者是多少毫秒我暂时没有找到.我认为时间应该在500毫秒差不多.

误点4

Application是在低内存的情况下是可以被销毁的,因此不要在这里面对象或者是数据的保存工作.而且在onLowMemory()onTrimMemory()方法中我们可以进行内存回收的操作,如关闭数据库链接,移除图片(内存和缓存的)可以降低被回收的风险.

误点5

因为Application的生命周期和Dalvik虚拟机是一样的,进行单列或静态的时候我们可以可以使用Application,Application在Activity中或者是Fragment中尽量不要使用(会造成内存泄漏哟).Activity和Fragment持有Application的话不会被内存回收,如果很多个对象使用了Application的话,你感受一下垃圾是有多少?

上一篇:Android虚拟机参数


下一篇:Android 面试必备 - 系统、App、Activity 启动过程“一锅端”