我使用下面的填充与MICRO_KIND缩略图一个GridView:的Android删除图像文件删除后micro_kind缩略图
/* Find images of interest */
imagecursor = getActivity().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CON TENT_URI,
columns,
MediaStore.Images.Media.DATA + " like ? ",
new String[]{"%/houseTab" + currentHouseNumber + "/%"},
null);
/* Retrieve MICRO_KIND Thumbnails */
int id = imagecursor.getInt(image_column_index);
thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(
getActivity().getApplicationContext().getContentResolver(), id,
MediaStore.Images.Thumbnails.MICRO_KIND, null);
的检索过程中完美的作品;该问题发生在我删除实际图像文件时无法删除MICRO_KIND缩略图。这是我现在正在使用的文件图像被删除,但MICRO_KIND不会被删除,即使在刷新后仍然可以在gridview中看到。为了摆脱缩略图,我必须关闭设备或者卸载/挂载SD卡。
int count = imagecursor.getCount();
int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);
ContentResolver cr = getActivity().getApplicationContext().getContentResolver();
for (int i = 0; i < count; i++) {
new File(arrPath[i]).delete(); // Delete the actual image file
imagecursor.moveToPosition(i);
long id = imagecursor.getInt(image_column_index);
/* Delete the thumbnails ???? Not working */
cr.delete(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, MediaStore.Images.Thumbnails.IMAGE_ID +
"= ?",new String[]{"" + id});
顺便说arrPath是使用下面的mediastore检索:
int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);
arrPath[i] = imagecursor.getString(dataColumnIndex);
我也尝试以下命令来删除缩略图也没有任何成功。
MediaScannerConnection.scanFile(
getActivity().getApplicationContext(),
new String[]{arrPath[i]},
null,
new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
refreshImages();
}
});
所以,所以当imagecursor的文件删除后刷新imagecursor是空的,没有返回MICRO_KIND或与此有关的任何数据我如何从数据库中删除该条目???
任何帮助,将不胜感激。