No se puede reanudar el error de actividad

My Activity contiene este código para obtener todas las imágenes en la tarjeta 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();

El ocurrió mientras se reanudaba la Actividad:

03-14 14: 06: 48.380: E / AndroidRuntime (20793): java.lang.RuntimeException: No se puede reanudar la actividad {}: java.lang.RuntimeException: No se puede reanudar la actividad {}: android.database.StaleDataException: Intento para acceder a un cursor después de que se haya cerrado.

Solo ocurre en Android 4.0. Si está en Android 2.xo 3.x, funciona normalmente. Pero si cambio la configuración del sistema que selecciona la opción "no mantener actividades" en "Opciones de desarrollador". El error no se muestra.

Quiero modificar mi código para evitar este error sin cambiar la configuración del sistema. ¿Cómo debería hacerlo

Respuestas a la pregunta(6)

Su respuesta a la pregunta