最近在优化项目的时候,解决内存泄漏有点懵了。关于静态方法持有context的时候,但是又不能使用applicationContext的时候 ,比如方法里面有dialog的时候。
public class A{
public static a(Context context){
//.....
}
}
比如在这个时候context是activity传入的时候回造成内存泄漏吗?求大佬们帮助
最近在优化项目的时候,解决内存泄漏有点懵了。关于静态方法持有context的时候,但是又不能使用applicationContext的时候 ,比如方法里面有dialog的时候。
public class A{
public static a(Context context){
//.....
}
}
比如在这个时候context是activity传入的时候回造成内存泄漏吗?求大佬们帮助
activity内存泄漏是指在activity退出将要销毁的时候,还有其他变量引用这acitivty这个实例导致无法销毁,比如你的类A是这样的
``` public class A{
static Context mContext
public static a(Context context){
mContext = context
//.....
}
}
当调用a方法是传入的是acitivty实例,mContext这个静态变量就会一直引用这activity使得其无法销毁。所以你如果只是像显示一个
dailog传acitivty是没问题的(不要赋值给mContext就行)