我使用下面的填充與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或與此有關的任何數據我如何從數據庫中刪除該條目???
任何幫助,將不勝感激。