The content of the adapter has changed but ListView did not receive a notification
The content of the adapter has changed but ListView did not receive a notification
在Android开发过程中,使用了大量的ListView,发现这个错误偶尔会出现。特别是做压力测试的时候,不停的点击刷新,更容易出现这个错误。代码中已经使用了Adapter的notifyDataSetChanged()方法通知UI更新了,但是还是会出现这个错误。究其根本原因,还是线程之间同步的问题。比如,线程1更新了Adapter中的内容,却还没有来得及通知内容已经更新,就又有线程2更新了Adapter中的内容,这个时候如果线程1再通知内容更新,就会出现上述异常了。
在此提出一些解决办法:
对线程进行管理,如果当前Actitivty暂停了,及时停止这些线程。
数据更新后,要及时使用notifyDataSetChanged()方法通知UI,避免出现数据不一致的情况。
数据的更新,最好放在主线程中进行。这样可以使用同步数据更新与通知内容更新部分的代码。
最后补充一条我最终解决问题的方法:
在用到多线程的时候,可以对数据做缓存处理, 比如与ListView绑定的数据存储在ArrayList (dataList), 在线程中先将数据加入到临时ArrayList(tmpList) , 最后在调用notifyDataSetChanged()方法通知UI更新之前, 把临时ArrayList(tmpList)中的数据更新到ArrayList(dataList)中, 然后清空临时ArrayList(tmpList)数据。
转载于:https://www.cnblogs.com/zhujiabin/p/5771988.html
The content of the adapter has changed but ListView did not receive a notification相关推荐
- 关于Adapter的The content of the adapter has changed but ListView did not receive a notification.问题分析
1.问题描述 1 07-28 17:22:02.162: E/AndroidRuntime(16779): java.lang.IllegalStateException: The content o ...
- 解决java.lang.IllegalStateException: The content of the adapter has changed but ListView...的问题
我写了一个Dialog,Dialog中有一个ListView,想要点ListView中的一项后,跳转到另外一个Activity去. 但在使用时,会偶尔报出下面的错误: 02-21 14:54:28.9 ...
- the content of the adapter has changed but listview did not
http://dev.10086.cn/cmdn/wiki/index.php?doc-view-5432.html高手文章,要分享 这是我原来的代码 public class FileDeleteA ...
- 《每日一剂》适配器刷新报错adapter.notifyDataSetChanged()解决
2019独角兽企业重金招聘Python工程师标准>>> 在使用ListView过程中,有时会出现The content of the adapter has changed but ...
- 刷新adapte要注意的地方,和adapter使用的流程
一般情况下,使用adapte的具体步骤如下: 1,new对象 2,添加adapter 3,然后请求数据, 4,设置数据. 5,通知adapter数据发生改变,进行刷新. 如果有再次请求,则是: 1,先 ...
- 每日一剂《适配器刷新报错》
2019独角兽企业重金招聘Python工程师标准>>> java.lang.IllegalStateException: The content of the adapter has ...
- android异常(2)
1.java.lang.IllegalStateException: The content of the adapter has changed but ListView did not recei ...
- Android 小知识
1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environmen ...
- 源码之ListView分析
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android所有常用的原生控件当中,用法最复杂的应该就是List ...
- android listview 数据同步,android中ListView数据刷新时的同步方法
本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: public class Main extends BaseActivity { priv ...
最新文章
- android 相片裁剪空间,科学网—根据需要的空间范围对目标图层进行空间裁剪 - 孙露的博文...
- UIView-Maker,实现UIView的clone操作和统一样式模型
- Javascript Prototypes之旅(A Plain English Guide to JavaScript Prototypes译文)
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- pyspark 读取本txt 构建RDD
- disaster——我都做了些什么啊!
- JAVA实现的支付宝扫描二维码支付
- Eratosthenes筛选法
- mysql 基础面试_面试必问之mysql基础
- Linux内核模块静态加载的顺序
- 移动硬盘格式化了的数据找到法子
- Pycharm中的红色小闪电含义
- 用python解矩阵方程_用Python的Numpy求解线性方程组
- 赛灵思 Xilinx UG1506 - Versal ACAP 开发板系统设计方法指南(中文版) (v2021.2)
- word一打字就有下划线_word下划线上怎么打字 不破坏下滑线技巧
- element table表格表头显示斜杠/斜线
- netty的epoll和linux的epoll是如何实现的
- c语言double型小数点后几位_double类型的数据在输出的时候,C语言编译器对小数部分可以精确到小数点后面的第几位?...
- 入手python时踩过的坑——缩进篇
- 【分治法】逆序对的数量(结合归并排序,含详细思想、解法、代码及注释)