我有一个漂亮漂亮的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的内容并更新单个视图吗?
答案 0 :(得分:0)
是否有类似/推荐的方法来“更新”MergeAdapter?
notifyDataSetChanged()
有效,AFAIK。当前MergeAdapter
的代码可以将其中ListAdapters
内的任何更改归咎于MergeAdapter
中已更改的注册内容。这可能还没有经过足够的测试,所以如果你有一个示例应用程序,但是发布一个链接或发送给我(提到这个问题)。