我有一个非常漂亮的 MergeAdapter,其中包含一堆自定义视图和一些自定义 ListAdapter。这个 MergeAdapter 驱动一个 ListActivity,它显示每 x 秒更新一次的内容。
目前我只是创建一个新的 MergeAdapter,创建并添加我所有的自定义视图(这包括一些 ImageViews) - 并在我的活动中调用 ListView 上的 setAdapter。
大约 10 分钟的更新后,我用完了堆空间并崩溃了。
最终因为添加了新的ImageView,抛出了如下异常:
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
使用更简单的适配器(如 ArrayAdapter),我只需更新数据集,然后调用
notifyDataSetChanged()
在适配器上。
是否有“更新” MergeAdapter 的类似/推荐方法?或者我应该遍历可能复杂的 MergeAdapter 的内容并更新单个视图?