【发布时间】:2013-01-09 20:01:56
【问题描述】:
我的应用程序出现随机(内存不足)崩溃,因此我开始分析我的堆。我注意到,如果我从活动 A 转到活动 B,堆会从 27 MB 增加到 35 MB(由于延迟加载许多图像)。但是,当我完成()活动 B 以返回活动 A 时,即使使用 GC 操作,堆大小也保持不变!
令人讨厌的是,再次执行活动 B 会将堆增加到 42 MB。我可以多次这样做,而且堆只会不断增加。
这是我正在使用的延迟图像加载库:
懒惰列表https://github.com/thest1/LazyList
这些是堆的截图
之前:http://i.stack.imgur.com/7eTzm.png
之后:http://i.stack.imgur.com/txeC6.png
转换后的堆转储文件可根据要求提供
更新
从我的调试来看,似乎是来自 LazyList 库的问题,但我仍然不能 100% 确定。以下是对图书馆评论的人的参考:
【问题讨论】:
-
听起来您的活动正在泄漏一些数据。您是否有任何 IPC 成员变量,或者任何其他可以在没有活动的情况下继续进行的内容?
-
没有 IPC 为了在没有活动的情况下继续,我正在使用的库使用多个线程(汽车在没有活动的情况下运行)。
-
你解决了这个问题然后请反馈..
标签: android memory-management memory-leaks garbage-collection heap-memory