我认为单例实例不应该被垃圾收集,但是我维护了一个单例对象,并在初始化时对其进行标记,如下所示:
private static LocalCache instance;
public LocalCache() {
// initialize objects......
}
public static LocalCache getInstance() {
if (instance == null) {
instance = new LocalCache();
Log.e("instance", "new");
}
return instance;
}
我发现这个日志在我的应用程序中出现了不止一次。更准确地说,我在 FragmentActivity 中有 5 个片段。当我按下主页按钮执行某些任务并切换回活动时,单例类似乎被重新分配。我的代码有问题吗?或者我可以阻止重新创建片段吗?我确定我没有将 null 分配给实例。
@Override
protected void finalize() throws Throwable {
Log.e("finalize", "finalize");
}
我还重写finalize()
以观察它何时被销毁,但日志没有出现在第二个“新实例”日志之前。