final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
final DiffUtil.DiffResult diffResult =
DiffUtil.calculateDiff(new DiffCb(oldItems, newItems));
handler.post(new Runnable() {
@Override
public void run() {
applyDiffResult(newItems, diffResult);
}
});
}
}).start();
}
这就是我进行计算和更新列表的方式。但是当我更新 2,3 个项目时,它完美无缺。但是当我更新像 20 这样的项目时,它会阻塞 UI 大约 10 秒。