Nicht in der Lage, um die Aktivität Fehler

Meine Tätigkeit, die diesen code enthält, um alle Bilder auf der SD-Karte:

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();

Die aufgetreten sind, während der Tätigkeit wurde die Wiederaufnahme:

03-14 14:06:48.380: E/AndroidRuntime(20793): java.lang.RuntimeException: Unable to resume activity {}: java.lang.RuntimeException: Unable to resume activity {}: android.Datenbank.StaleDataException: Versuchter Zugriff auf einen cursor, nachdem es geschlossen wurde.

Es tritt nur auf Android 4.0. Wenn Sie auf Android 2.x oder 3.x, funktioniert es normal. Aber wenn ich die system-Einstellung wählt die "don' T keep Activities" - option in "Entwickler-Optionen".
Den Fehler nicht zeigen.

Möchte ich ändern mein code um diesen Fehler zu vermeiden, ohne eine änderung des Systems einstellen. Wie sollte ich es tun?

InformationsquelleAutor brian | 2012-03-14

Schreibe einen Kommentar