1.问题:最近做一个保存视频到本地功能,起初视频保存到本地后,相册数据库没有刷新,导致相册里面找不到该视频,这个通过MedisScannerConnection解决,链接
https://blog.csdn.net/zhqw_csdn/article/details/79882745 后来,又需要将该文件删除,但是删除后本地相册仍然能看到缓存的文件夹和文件,只是文件无效而已
2.原因:因为我们保存视频或者图片到本地后,手动刷新了本地的媒体数据库,所以数据库里面有该视频或者图片的记录,但是我们删除的时候是直接删除的文件,数据库里面的记录依然存在,所以需要删除数据库里面的记录
3.解决方案:通过ContentResolver删除数据库里面的视频记录,代码如下
2.原因:因为我们保存视频或者图片到本地后,手动刷新了本地的媒体数据库,所以数据库里面有该视频或者图片的记录,但是我们删除的时候是直接删除的文件,数据库里面的记录依然存在,所以需要删除数据库里面的记录
3.解决方案:通过ContentResolver删除数据库里面的视频记录,代码如下
public static void deleteVideoInAlbumDB(List<String> paths) {
ContentResolver contentResolver = MainApplication.getContext().getContentResolver();
for (String filePath : paths) {
int delete = contentResolver.delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, MediaStore.Video.Media.DATA + "=?", new String[]{filePath});
}
}