解决RecyclerView卡顿的问题,找过很多问题的引发点,最后的解决灵感来自于这里:
onBindView里的IO操作导致RecyclerView scroll 卡顿
在项目中查找,发现onBindView中多图片使用Glide加载时确实是有保存bitmap到文件的IO操作,将IO操作注释掉,运行App,卡顿消失,这样,开始对IO动刀;
首先想到,每个IO操作新开线程来处理,为加快线程速度,保证预期效果不打太大折扣,想到利用ThreadPoolExecutor或者是ExecutorService进行
代码:
/*
* 保存 bitmap到文件,并将文件路径返回,利用线程池新开IO线程,解决滚动时卡顿的问题
* */
public static String getFilePath(final Bitmap bitmap, String fileName) {
final File picDir = Environment.getExternalStoragePublicDirect