最近在优化项目的时候,解决内存泄漏有点懵了。关于静态方法持有context的时候,但是又不能使用applicationContext的时候 ,比如方法里面有dialog的时候。
public class A{
public static a(Context context){
//.....
}
}
比如在这个时候context是activity传入的时候回造成内存泄漏吗?求大佬们帮助
...全文
102821打赏收藏
android 静态方法持有context的内存泄漏
最近在优化项目的时候,解决内存泄漏有点懵了。关于静态方法持有context的时候,但是又不能使用applicationContext的时候 ,比如方法里面有dialog的时候。 public class A{ public static a(Context context){ //..... } } 比如在这个时候context是activity传入的时候回造成内存泄漏吗?求大佬们帮助
public static void show(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setTitle("呵呵")
.setMessage("哈哈");
builder.create().show();
}
}
用leakcanary测出来还是内存泄漏啊 ,我就懵了- -[/quote]肯定会内存泄漏啊,静态方法要求变量也为静态,你传入context导致该activity不能被销毁,你这方法改成非静态啊。[/quote]
如果是这样的话,网上那些什么解决单例模式的内存泄漏方法都是不行的咯。比如:
public class DialogUtil {