#2 main
java.lang.IndexOutOfBoundsException
Index: 545, Size: 0
java.util.ArrayList.get(ArrayList.java:437)
androidx.recyclerview.widget.AsyncListDiffer$1$1.getChangePayload(AsyncListDiffer.java:2)
androidx.recyclerview.widget.DiffUtil$DiffResult.dispatchUpdatesTo(DiffUtil.java:17)
androidx.recyclerview.widget.AsyncListDiffer.latchList(AsyncListDiffer.java:4)
androidx.recyclerview.widget.AsyncListDiffer$1$2.run(AsyncListDiffer.java:2)
android.os.Handler.handleCallback(Handler.java:938)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:233)
android.app.ActivityThread.main(ActivityThread.java:7892)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
崩溃的地方应该在这
传递给getOldListSize()和getNewListSize()方法的size不对吧
这种东西一般都要考虑异步操作吧。
比方说,一开始数据长度10,你用10作为范围开始进行比较;
同时去子线程刷新数据,结果子线程先结束,更新的新数据,长度只有8;
那等你之前比较列表的操作去长度8的列表中取第9个、第10个元素,可不就数组越界了吗。