ListView中添加FootView时应该注意的内存溢出问题
2016-11-02 14:44
288 查看
今天在看技术文章的时候看到一个ListView添加FootView时候导致OOM的问题,我觉得应该记下来,以后有需要的时候可以注意一下。
以前我们的应用中使用了ListView.addFooterView()这个方法,但没注意文档的说明:NOTE: Call this before calling setAdapter。我们为了显示不同状态的footerview,不断的动态调用ListView.addFooterView(),功能实现了而且使用时间短也不会发生crash。但是使用时间一长就必发生OOM。然后通过MAT分析,dominator_tree分析,发现里面有成片的listview无法释放,导致activity也无法释放,内存不断上涨,最终发生OOM。这也是个教训,ListView.addFooterView()这个方法一定要放在setAdapter之前调用。如果要显示不同的状态,推荐使用FooterView里面子控件的setVisibility来实现。
以前我们的应用中使用了ListView.addFooterView()这个方法,但没注意文档的说明:NOTE: Call this before calling setAdapter。我们为了显示不同状态的footerview,不断的动态调用ListView.addFooterView(),功能实现了而且使用时间短也不会发生crash。但是使用时间一长就必发生OOM。然后通过MAT分析,dominator_tree分析,发现里面有成片的listview无法释放,导致activity也无法释放,内存不断上涨,最终发生OOM。这也是个教训,ListView.addFooterView()这个方法一定要放在setAdapter之前调用。如果要显示不同的状态,推荐使用FooterView里面子控件的setVisibility来实现。
相关文章推荐
- 给listView添加headView或footView不显示的问题
- listview如果添加的有Headview和Footview,onItemClick数值异常问题
- ListView 添加footView导致崩溃的问题
- android ViewGroup删除子视图时应该注意的一个问题
- 关于为使用ArrayAdapter创建ListView时,使用TextView添加子项的问题
- [工作记录]ListView添加FootView,LayoutParams转化出错
- android listview添加footview,有的手机可以正常显示,有的则不显示
- Android ListView使用convertView解决内存溢出问题(推介使用recyclerview,listview已过时)
- listview如果添加的有Headview和Footview,onItemClick数值异常
- listview如果添加的有Headview和Footview,onItemClick数值异常
- Listview添加完HeaderView或者FooterView后,点击相应的view出现IndexOutOfBoundsException问题修复
- listView中添加了headerView时,使用position的注意事项
- Android:ListView底部footview无法显示问题解决
- 关于为使用ArrayAdapter创建ListView时,使用TextView添加子项的问题
- 关于Fragment中定义一个ListView,然后给这个ListView添加header(ViewPager)的问题
- ListView中添加SurfaceView时黑屏问题
- ListView应该注意的一些问题
- Android ListView适配器BaseAdapter中getItemViewType需要注意的问题
- ListView-添加head跟foot item 问题
- listview添加headerview需要注意的,listview自定义的item注意的焦点