Я получаю «Приложение не закрывало курсор или объект базы данных, который был открыт здесь», но я вставил команду, чтобы закрыть его - PullRequest
0 голосов
/ 19 марта 2012

вот что меня озадачило.Я открываю базу данных в методе onCreate, затем вызываю функцию, которая открывает курсор, делает кучу вещей, затем закрывает курсор в конце функции.

, затем я вставляю OnPause и закрываюбаза данных перед вызовом функции super.onPause

Я также получил onResume, который повторно открывает базу данных и вызывает ту же функцию, которая вызывается при создании, вызывается для обновления данных.

Finnaly Я получил onDestroyфункция, которая также закрывает базу данных перед вызовом super.onDestroy.

вот части, которые относятся к базе данных http://pastebin.com/GVcnsVCc

и вот мои ошибки: http://pastebin.com/Vd6Sdqzp

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

1 Ответ

0 голосов
/ 19 марта 2012

Не startManagingCursor(c).Это а) устарело и б) будет пытаться закрыть () и запросить () курсор для вас.Это также означает, что вы не должны закрывать () курсор самостоятельно, чего вы не можете, потому что вам также необходимо закрыть базу данных.(tbh это будет работать с stopManagingCursor(c))

Поскольку вы, похоже, обрабатываете запрос самостоятельно, вы можете просто пропустить эту часть.

Также вы можете напрямую закрыть базу данных, как только закончите сgetdata().Нет необходимости держать его открытым, если вы постоянно не читаете и не пишете данные, пока ваше приложение активно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...