Предотвращение исключения IllegalStateException в SQLiteCursor для Android

У меня есть ListActivity , привязанный к курсору, когда элементы в ListView выбраны, действие EditItem запускается startActivityForResult , эта EditItem несколько запросов, каждая из которых помещается в отдельный отдельный курсор. Они используются для заполнения прядильщиков, подобно полю поиска в БД доступа.

Моя проблема заключается в том, что как только пользователь покинет это действие EditItem , либо с помощью кнопки отправки, отмены или возврата, вернется к активности ListView и выберет другую запись в ListView (тот же элемент или другой). Я получаю ошибки IllegalStateException в моем классе SQLiteCursor (Android, а не мой). Я закрываю свои курсоры в методе onDestroy обоих действий, так как иногда призыв к результату по-прежнему будет уничтожать вызывающую активность.

Это не всегда происходит при втором выборе элемента, иногда это происходит при третьем выборе. Я подумал, что, может быть, я просто двигался быстрее, чем ОС, поэтому я начинаю делать паузы, до 30 секунд, между моими действиями, ошибка возникает только после вызова операции для результата второй или третий раз. Никакое количество пауз не исправляет это.

Изменить: ошибка заключается в SQLiteCursor finalize при вызове super.finalize();

Редактировать # 2: Трассировка стека для потока:

 Daemon System Thread [<5> HeapWorker] (Suspended (exception IllegalStateException)) SQLiteCursor.finalize() line: 603 NativeStart.run() line: not available [native method] 

Редактировать # 3 Трассировка стека из LogCat (список деталей – это имя таблицы):

 INFO/dalvikvm(599): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@437541a0 on partslist that has not been deactivated or closed INFO/dalvikvm(599): at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596) INFO/dalvikvm(599): at dalvik.system.NativeStart.run(Native Method) 

Удостоверьтесь, что вы закончили с ними cursor.close() .

cursor.close() отсутствием cursor.close() .