5

这是一段简化的代码:

static Activity longLivedField;

onCreate(...) {     
    longLivedField = this;  // the only write to this field
}

我见过有人声称这是上下文泄漏,并为此创建了修复程序。典型的解决方法是在适当的位置使该字段无效。例如,在onPause()

onPause() {
    longLivedField = null;
}
4

1 回答 1

3

是的,如果你不使 onPause() 中的字段无效,那就是内存泄漏。您几乎可以肯定永远不想保留对任何 Activity 的静态引用。你想达到什么目的?

Android 开发者网站包含一个方便的页面,描述了如何避免像这样的内存泄漏:

避免内存泄漏

于 2012-05-18T19:24:50.883 回答