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!我不知道。很多人都做错事了,因为我经常看到。