关于Android的Application对象的问题

kut 发布于 2012/07/24 08:11
阅读 1K+
收藏 0

@邓凡平 你好,想跟你请教个问题:我在应用中自定义了一个Application类,也就是Application的子类,用它来保存一些业务逻辑对象,用HashMap来保存,程序一般运行是没有问题,可是,要是让程序一直在后台,也就是按了home键之后,经过很长的时间,这些保存在HashMap里的对象都不见了,结果给使用了这些业务逻辑对象的代码抛出了NullPointerException这样的异常,请问有什么办法可以补救不?

加载中
0
邓凡平
邓凡平
被垃圾回收了么?不应该吧。麻烦你再看看你的代码吧。实在不行,搞个WeakReference,每次用之前判断实际对象是否还存在。这是java基本问题,和android无关。
kut
kut
回复 @邓凡平 : 我试着把他们放在构造函数里试试。
kut
kut
回复 @邓凡平 : 应该不是,因为所有的业务逻辑对象都是在onCreate方法建立的,如果是新建立一个对象,应该也会调用onCreate才对。本人菜鸟,不知道是不是这样?
邓凡平
邓凡平
@Kut.Zhang 不要老想着android,就是一个虚拟机。一定是新创建了一个Application对象。你把id打出来。
kut
kut
我觉得应该是被android干掉了。
kut
kut
应该不会被垃圾回收吧,那个hashmap一直有application引用它。
0
曾赛
曾赛
看看这篇博文能不能帮到你:http://my.oschina.net/zengsai/blog/59334
kut
kut
红猎人的链接的讲法并不对,我的业务逻辑对象是一个hashmap,是Application对象的一个实例变量,也就是说,这个hashmap的生命周期和application对象是一致的。不存在static对象生命周期的问题。
返回顶部
顶部