我的應用有2個線程。 UI線程允許用戶查看詳細項目,刪除項目,更改項目屬性,...和1個線程更新數據從服務器,然後請求UI線程刷新RecyclerView
。每更新一次數據,我都會調用方法clear()
的ArrayList
,並用服務器的新數據更新ArrayList
。這使得IndexOutOfBoundsException
當線程2更新數據時,如果我與RecyclerView
交互。UI線程和更新線程之間的RecyclerView數據同步
所以在Activity
,在dispatchTouchEvent()
我等到更新數據完成以啓用用戶交互。當用戶與RecyclerView
交互時,我設置了1 boolean
值來禁用線程第二更新數據。但有時會觸發異常。有沒有更好的解決方案?
你必須同步線程之間的數據模型更改,但最簡單的方法是通過'android.os.Handler'來更新UI線程中的數據。 – pskink