Держать открытым Sqlite Cursor - PullRequest
       0

Держать открытым Sqlite Cursor

0 голосов
/ 17 сентября 2010

В приложении для Android, которое я разработал, я открываю курсор на запрос с довольно большим набором результатов (~ 1 тыс. Строк) и держу его открытым бесконечно долго. Это хорошая практика? Если нет, следует ли закрыть курсор в обработчике onClose (), а затем снова открыть его в обработчике onStart ()?

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

1 Ответ

1 голос
/ 17 сентября 2010

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

Что вы можете сделать, это закрыть его в OnStop и снова открыть его в OnStart. В качестве альтернативы вы можете позволить Android обрабатывать это автоматически для вас, позвонив по номеру startManagingCursor(c) из вашей деятельности.

* 1007 документы *

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