今天新增了个刷新结果报了异常:
异常是这样的:
/MessageQueue-JNI(796): Exception in MessageQueue callback: handleReceiveCallback
/MessageQueue-JNI(796): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
重现的步骤是:(1)返回刷新当前的页面
(2)下拉listView进行下拉刷新,直接闪退报这个错。
这个代码解决了,一开始看这个错误还以为是本地方法错误了,后来想想还是自己的代码写的不规范。具体怎么解决要看个人的业务逻辑,
回顾下,我们在这个地方做了什么。
(1)刷新这个页面,因为是分页加载,我们要把之前重复的数据全部删掉,所以做了清空装集合的数据
(2)当然是请求网络加载数据了,然后就是异步请求数据了。
(3)然后就是下拉刷新了,加载第二页的数据
等等,数据是异步的,我们是不是,因为数据没有加载成功而报的错呢?对的,确实是这样的。但是郁闷的是报错的都不是自己类,是系统的类,一开始定位还是摸不着头脑,但是你自己想想自己的操作步骤,就明显发现错误了。
所以,不要在请求数据之前没有成功之前,滑动,在请求数据后在做清空,清空后notifyDataSetChanged()一下,小小的错误,记录下。