Невозможно возобновить действие Ошибка

Моя активность содержит этот код для получения всех изображений на 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();

Произошло при возобновлении активности:

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, то работает нормально. Но если я изменю системную настройку, которая выбирает параметр «Не сохранять действия» в «Параметры разработчика». Ошибка не показывает.

Я хочу изменить свой код, чтобы избежать этой ошибки, не меняя настройки системы. Как мне это сделать?

12
задан Darshan Rivka Whittle 8 July 2012 в 23:06
поделиться