【发布时间】:2012-03-14 06:16:58
【问题描述】:
我的活动包含此代码以获取 SD 卡上的所有图像:
String[] projection = {MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.ImageColumns.DATA};
Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection, null, null,
MediaStore.Images.Media._ID);
int count = cursor.getCount();
int image_path_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
int i;
for(i = 0; i < count; i++) {
cursor.moveToPosition(i);
String p = cursor.getString(image_path_index);
fd.addToPhonePhoto(p);
}
cursor.close();
Activity 恢复时发生的:
03-14 14:06:48.380:E/AndroidRuntime(20793):java.lang.RuntimeException:无法恢复活动{}:java.lang.RuntimeException:无法恢复活动{}:android.database.StaleDataException : 试图在游标关闭后访问它。
它只发生在 Android 4.0 上。如果在 Android 2.x 或 3.x 上,它可以正常工作。但是,如果我更改在“开发人员选项”中选择“不保留活动”选项的系统设置。 错误未显示。
我想在不更改系统设置的情况下修改我的代码以避免此错误。我该怎么做?
【问题讨论】:
标签: android android-4.0-ice-cream-sandwich android-cursor