Java 未对上下文成员变量使用WeakReference时内存泄漏

Java 未对上下文成员变量使用WeakReference时内存泄漏,java,android,memory-leaks,Java,Android,Memory Leaks,以这一类为例: public class SomeClass { private Context mContext; public SomeClass(Context context) { mContext = context; } } 使用它更好吗 public class SomeClass { private WeakReference<Context> mContext; public SomeClass(Co

以这一类为例:

public class SomeClass {

    private Context mContext;

    public SomeClass(Context context) {
        mContext = context;
    }
}
使用它更好吗

public class SomeClass {

    private WeakReference<Context> mContext;

    public SomeClass(Context context) {
        this.mContext = new WeakReference<>(context);
    }
}
公共类SomeClass{
私有WeakReference mContext;
公共类(上下文){
this.mContext=新的WeakReference(上下文);
}
}

为了避免内存泄漏?我的印象是Android系统可以自行管理。

这取决于您如何使用
SomeClass
。如果您在暂停或其他任何地方解除上下文绑定,意思是mContext=null,那么您应该没事。否则它就是一个漏洞,除非你使用weakreference!我不知道。很多人都做错事了,因为我经常看到。