请澄清下面列出的代码是否会导致上下文内存泄漏?感谢
public class HelperClass {
private Context context;
public HelperClass(Context context) {
this.context = context;
}
public void myHelperMethod() {
// uses this.context
}
}
public class MyActivity extends Activity {
private HelperClass helper;
public void onCreate(Bundle savedInstanceState) {
helper = new HelperClass(this);
}
}
答案 0 :(得分:0)
简短的回答是否定的。您要注意的是对活动销毁后剩余的上下文/活动的引用。设备轮换是导致当前活动被Android销毁的操作示例。
在这种情况下,您的活动是唯一拥有对您的帮助程序类的引用的东西。因此,当活动被销毁时,将不再有现有的引用。
但是,如果您的活动类将对助手的引用定义为静态,那么这将导致内存泄漏。即使在活动实例被销毁之后,静态引用仍将保留。保存对活动的引用的助手类将阻止活动实例被收集。