在做购买功能时,购买成功了,需要回到这个页面,重新刷一下数据和界面,但是每次一到convientbanner的初始化时就会出问题,一调用这个语句就会闪退
报下面这个错
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's
contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count:
600, found: 1200 Pager id: com.example.mrygl:id/cbLoopViewPager Pager class: class
com.bigkoo.convenientbanner.view.CBLoopViewPager Problematic adapter: class com.bigkoo.convenientbanner.adapter.CBPageAdapter
说我没有调用notifyDataSetChanged方法,但是我的init方法中明显调用了这个方法
我在调试的过程中,发现程序刷新界面结束后不闪退了,也不报错了,但是一回到正式运行阶段,又开始闪退,报错。搜了好多个方法也没解决我的问题,我就思考这里会不会是一个多线程问题,进入notifyDataSetChanged方法里面观察
这里有一个synchronized关键字,应该是和多线程有关没跑了,在某个不知名的线程收到我要改变数据集的消息之前,主线程就已经调用了setPage方法,于是,我就在调用setPage方法之前,让主线程休息个100毫秒等一等,问题暂时解决
不过问题是否真的是这个原因我也不太清楚,希望大牛可以解决我的疑问