我在代码中遇到了OutOfMemory异常,因此我正在查看代码.
我有一个问题,View.removeAllViews()是否释放以前添加到父视图中的子视图使用的内存?
谢谢.
View.removeAllViews()可能会释放视图,并会安排它们进行垃圾收集(可能会在以后发生),但是你可能仍然有问题,因为XML中的@drawables或带有'getDrawable()的代码中的@drawables仍然会消耗内存.
我自己一直在努力解决OutOfMemory错误,并发现最大的问题不是Layout XML或View对象,而是它们加载的Drawables和Resources(或者我加载它们以附加到它们.)
关于这方面的精彩演讲可以在YouTube上从Google IO 2011中找到:
http://www.youtube.com/watch?v=_CruQY55HOk
本演讲介绍如何使用Eclipse MAT(内存分析工具)对OutOfMemory异常进行故障排除.我建议你,因为你提到你正在审查代码,开始寻找OutOfMemory错误的最佳位置是......"什么占据了我的记忆?"
| 归档时间: |
|
| 查看次数: |
6611 次 |
| 最近记录: |