У меня есть ListActivity
, который связан с курсором, когда элементы в ListView
выбраны, EditItem
запускается действие *1003*, это EditItem
действие выполняет несколько запросов, каждый из которых помещается в их собственный отдельный курсор. Они используются для заполнения счетчиков, очень похоже на поле поиска в БД Access.
Моя проблема в том, что, как только пользователь покидает это действие 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 (partlist - это имя таблицы):
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)