单身人士被摧毁

时间:2011-06-20 08:27:56

标签: android service android-activity singleton

我有一项启动服务的活动。还涉及单身Data。当我通过转到主屏幕关闭活动时,Data单例会在一段时间后被破坏,但是,应该这样,服务会继续运行。因此,Data的某些字段会再次成为null,并且服务会遇到空指针。

如何防止这种情况发生?

2 个答案:

答案 0 :(得分:6)

据我所知,为了安全起见,Activity实例会在自己的类加载器中启动。附加到由于加载Activity而加载的类的任何单例都与该类加载器绑定,后者又与活动生命周期相关联。

也就是说,我认为你不能保证不会发生这种情况,因此,不应该依赖它。

您需要序列化任何持久状态,然后在Activity启动时对其进行反序列化。

答案 1 :(得分:1)

我们实现此目的的一种方法是在您创建的Application的子类中存储对象的引用。这是一个简单的解决方法,适用于大多数情况,无需创建Service或必须始终序列化状态。