可以在访问相册方法时利用 MediaScannerConnection.scanFile() 来手动扫描新添加的图片并更新缓存。
示例代码:
// 首先定义一个继承自 MediaScannerConnection.MediaScannerConnectionClient 的类 public class MyMediaScannerConnectionClient implements MediaScannerConnection.MediaScannerConnectionClient { private MediaScannerConnection mScannerConnection; private String mFilePath;
// 初始化 MediaScannerConnection 和目标文件路径
public MyMediaScannerConnectionClient(Context context, String filePath) {
mFilePath = filePath;
mScannerConnection = new MediaScannerConnection(context, this);
}
// MediaScannerConnectionClient 接口回调
@Override
public void onMediaScannerConnected() {
mScannerConnection.scanFile(mFilePath, null);
}
@Override
public void onScanCompleted(String path, Uri uri) {
mScannerConnection.disconnect();
}
}
// 然后在添加新图片后调用 MyMediaScannerConnectionClient scanner = new MyMediaScannerConnectionClient(getApplicationContext(), imagePath); scanner.mScannerConnection.connect();
// 最后可以考虑使用 Glide 等图片加载库来优化图片的加载和缓存。