有时候在App内删除了图片,调用图片选择器会看到删除了的图片还存在(显示不出来),这是由于图片被删除了,但是媒体库的记录还存在,没有同步刷新造成的,手机重启后媒体库会被刷新。
我们可以在删除文件后调用如下代码刷新媒体库:
情况一:
删除单张图片,知道准确的图片路径时:
/**
* 刷新媒体数据,让文件立刻显示在相册中
*
* @param mContext
* @param filePath 文件(图片)全路径; ./aa/bb/cc.jpg
*/
public static void refreshMedia(Context mContext, String filePath) {
MediaScannerConnection.scanFile(mContext,
new String[]{filePath},
new String[]{"image/jpeg", "image/png", "image/jpg"},
(path, uri) -> {
LegoLog.d("onScanCompleted:" + path);
});
}
情况二:
删除的是文件夹时(多张图片),不清楚每张图片具体路径时:
/**
* 删除文件后更新数据库 通知媒体库更新文件夹
*
* @param context
* @param filepath 文件夹路径)要求尽量精确,以防删错
*/
public static void updateFileFromDatabase(Context context, String filepath) {
Strin

本文介绍了解决App内图片删除后,调用图片选择器仍能看到已删图片的问题。通过调用特定代码,可以即时刷新媒体库,确保删除的图片不再显示。适用于单张图片和整个文件夹的删除场景。
最低0.47元/天 解锁文章
3822

被折叠的 条评论
为什么被折叠?



