【发布时间】:2012-05-17 09:17:53
【问题描述】:
我修复了我的应用程序活动中的窗口泄漏。但是,当我在 android - Histogram View 中使用 Memory Analyzer Tool 测试应用程序时,我发现了 2 个我的活动实例。
类名 |对象 |浅堆 |保留堆
.MATDemoActivity. | | |
com.pace.mat.MATDemoActivity | 2 | 368 |
总计:1 个条目(已过滤 2,195 个)| | |
既然没有内存泄漏,怎么可能是2个对象呢?请帮助我理解 MAT 结果中的数据....提前致谢
请在此链接中找到完整的代码和相关讨论。
==================
我发现当我从 Activity 1st -> 2nd -> 1st 开始时。第一个活动的浅堆 class= 2 和第二个活动 class= 1 当我从第一个 -> 2nd -> 1st -> 2nd 移动时……第一个活动的浅堆 class= 1 和第二个活动 class= 2。
所以我尝试了启动模式。我为所有活动设置了 android:launchMode="singleTask"。现在这两个活动的浅堆等于我导航到页面的次数。但是由于在这种启动模式下不允许多个实例,为什么我没有将浅堆对象计数为 1?
请分享您的想法,这将有助于我更好地理解这一点。
【问题讨论】:
-
我发现当我从 Activity 1st -> 2nd -> 1st 开始时。第一个活动的浅堆 class= 2 和第二个活动 class= 1 当我从第一个 -> 2nd -> 1st -> 2nd 移动时……第一个活动的浅堆 class= 1 和第二个活动 class= 2。
标签: android memory-leaks eclipse-memory-analyzer