我正在使用 Eclipse 内存分析器工具 (MAT) 调查我的 Android Activity 是否存在内存泄漏。如果 Activity 有泄漏,我希望死实例会在堆上徘徊,而不是被垃圾收集。为了检查这一点,我反复启动和停止(通过按“后退”按钮)该 Activity ,然后使用 MAT 检查堆转储。
但我观察到一些我无法解释的奇怪行为: Activity 的第一个实例(在执行强制关闭后开始)从未被垃圾收集。但是,后续实例会。我通过使用 MAT 工具进行检查了解到这一点:无论 Activity 启动和停止多少次,MAT 工具始终在堆上显示两个实例。第一个实例属于 Activity 的第一次启动,而第二个实例属于最近运行的 Activity 。
关于可能发生的事情的任何想法,以及我是否应该为此担心。内存泄漏?非常感谢您的建议。
最佳答案
只是关闭:似乎在 MapActivity 子类中存在内存泄漏的已知问题。参见例如code.google.com/p/android/issues/detail?id=2181。还没有找到适合我的修复方法。
关于android - Activity 的第一个实例永远不会被垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14173027/