安卓listview更新数据列表如何优化

最近在做一个跟蓝牙有关的应用,其中就有蓝牙扫描连接的一个步骤,蓝牙扫描的时候在listview里面会不断的加载扫描到的数据,实际测试的时候发现周围设备到10多20多个的时候,重复扫描几次listView的加载就会变得卡顿,Adapter里面已经把普遍使用的ViewHolder的使用过了,请教还有什么其他方式优化listView的性能么

首先你要确定你的viewHolder有没有复用过。
图片说明
类似与上面的写法。
另外实在不行,可以考虑使用recyclerview

1、viewHolder的服用,
2.hander的循环的使用,每扫描一次跟新一下就好了

private List data = new ArrayList<>();

这个是数据,我listview getview()就是用个这data里的数据,
然后每次数据发生变化就运行一次下面这句
((BaseAdapter) listview.getAdapter()).notifyDataSetChanged();
当然我忘了notifyDataSetInvalidated() 和notifyDataSetChanged()的区别了

这个卡的原因也有可能是由于列表刷新的太频繁了!打个比方,假如蓝牙100ms扫描一次,每次增加一个数据,如果增加就立即显示那么刷新就太频繁了
可以这样,3s做一次把数据添加到列表的操作,3s内来新的数据只是记录下来不添加到显示列表

你不要每次都重新设置数据,然后刷新全部。局部刷新。