我的应用有2个线程。 UI线程允许用户查看详细项目,删除项目,更改项目属性,...和1个线程更新数据从服务器,然后请求UI线程刷新RecyclerView
。每更新一次数据,我都会调用方法clear()
的ArrayList
,并用服务器的新数据更新ArrayList
。这使得IndexOutOfBoundsException
当线程2更新数据时,如果我与RecyclerView
交互。UI线程和更新线程之间的RecyclerView数据同步
所以在Activity
,在dispatchTouchEvent()
我等到更新数据完成以启用用户交互。当用户与RecyclerView
交互时,我设置了1 boolean
值来禁用线程第二更新数据。但有时会触发异常。有没有更好的解决方案?
你必须同步线程之间的数据模型更改,但最简单的方法是通过'android.os.Handler'来更新UI线程中的数据。 – pskink