Android上下文内存通过活动私人成员泄漏



请澄清下面列出的代码是否会导致上下文内存泄漏?感谢

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);
    }
}

简短的答案是否定的。您需要注意的是对活动销毁后保留的上下文/活动的引用。设备旋转是导致当前活动被Android破坏的一个操作示例。

在这种情况下,您的活动是唯一一个拥有对您的助手类的引用的东西。因此,当活动被销毁时,将不再有现有的引用。

但是,如果您的活动类将对帮助程序的引用定义为静态,那么这将导致内存泄漏。即使在活动实例被销毁之后,静态引用仍将保留。helper类保存对活动的引用,从而防止对活动实例进行垃圾收集。

最新更新