基础:
- Activity - 在每次屏幕方向改变时重建(onCreate-onDestroy)
- 视图包含一个ViewFlipper,其中包含两个子项:简单的RelativeLayout和ListView
- ListView行具有复杂的布局和相关标签
问题是每次屏幕方向改变都会出现内存泄漏 - Activity与整个视图布局一起留在内存中。Activity本身是一个上下文,因此只要关联对象存在,它就会一直留在内存中。所以现在我正在尝试找出为什么会发生泄漏。
View有setTag()方法。我使用它来存储有关行的一些信息(因此ListView中的每一行(View)都有相关的标签)。
但是视图和GC如何处理标签?我的标记对象(holders)包含对视图的引用,但是如果视图删除对其标签的引用,则这些引用(以及标签本身)将很容易被收集。
是否有人遇到过类似的ListView问题?
P.S. 我想知道GC如何清理布局 - 大量的循环引用、上下文、持有者等...