这是一段简化的代码:
static Activity longLivedField;
onCreate(...) {
longLivedField = this; // the only write to this field
}
我见过人们声称这是一个上下文泄漏,并为它创建修复程序。典型的解决方法是在适当的位置使字段无效。例如,在onPause()
:
onPause() {
longLivedField = null;
}
答案 0 :(得分:3)
是的,如果你没有使onPause()中的字段无效,那就是内存泄漏。您几乎肯定不想保留对任何Activity的静态引用。你想要实现的是什么?
Android开发人员网站包含一个方便的页面,描述如何避免像这样的内存泄漏: