【发布时间】:2021-07-30 14:20:28
【问题描述】:
据我所知,Java 单例对象不能被垃圾回收,除非加载此类(类加载器)的上下文本身符合垃圾回收条件。
问题 #1: 是这样吗,还是有其他可能被垃圾收集的情况?
在我的应用程序中,我有一个创建单例对象的 Android 活动。当我的应用程序在后台运行时设备内存不足时,如果我尝试打开它并将其带回前台,我会看到单例对象已被销毁并重新初始化。
问题 #2: 如果必须释放内存并且对单例对象进行垃圾回收,是否存在单例对象可能无法完全进行垃圾回收而仅对其部分静态变量进行垃圾回收的情况?
【问题讨论】:
-
你有一个创建单例的活动是什么意思?
-
可能更容易分享
Activity和“singleton”代码。 -
@MikkelT 我的意思是,例如在我的主要活动的 onCreate 函数中,我创建并初始化了一个单例对象的实例。
标签: java android memory garbage-collection singleton