android - Activity 的第一个实例永远不会被垃圾收集?

标签 android memory-leaks garbage-collection

我正在使用 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/

相关文章:

android - IllegalStateException( "You can not set Dialog' s OnCancelListener 或 OnDismissListener")

c - 移动指针后 C 中的内存泄漏问题(释放的到底是什么?)

安卓内存泄漏?位图超出 MapView 的 VM 预算错误

c++ - 为什么字符串 operator= 上的 double free?

java - 一半的堆使用率,但很多 ehcache 未命中

java - 在不区分大小写的情况下避免重复条目?

android - 创建一个自定义 Drawable 并在 XML 中使用它

java - 当对象持有对正在运行的线程的引用时,该对象是否有资格进行垃圾回收?

.net - 什么是根引用?

Android (Firestore) : Unable to add or update or set (SetOptions. 合并) 已在 Firestore 中创建的文档中的字段