可以在 Android 中从单例中释放上下文以防止内存泄漏

Possible to free Context from Singleton in Android to prevent memory leak

我正在维护一个遗留项目,由于限制,我无法进行太多重构。但是我刚刚在下面的场景中发现了可能的内存泄漏。

将片段传递给单例class

Foo.getInstance().setBar(fragment);

假设静态实例的寿命比我们需要的要长,在该片段的 onDestroy() 方法中将其设为 null 是不是一个好方法。

@Override
public void onDestroy(){
    Foo.getInstance().setBar(null);//to prevent memory leak
    super.onDestroy();
}

我是内存泄漏领域的新手,如果有什么不对请指正:)

在单例中使用WeakReference