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