Android sqlite оставляя соединение открытым - PullRequest
2 голосов
/ 09 января 2011

Я создаю экземпляр SQLiteDatabase и вызываю getReadableDatabase() или getWritableDatabase() и манипулирую данными таким образом, но я никогда не закрываю базу данных через db.close(). Это плохо, чтобы не закрыть его? Я пытался добавить db.close() к моим onStop() или onDestroy() методам, но он просто принудительно закрывается.

Ответы [ 3 ]

5 голосов
/ 09 января 2011

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

И, как правило, распоряжайтесь ресурсами в обратном порядке их получения.

2 голосов
/ 09 января 2011

Вы в основном раздуваете приложение, открывая дополнительный курсор.Лучшая практика - закрыть соединение.

Я заметил, что возникает много исключений, если вы этого не делаете.

0 голосов
/ 05 июля 2011

Если вы не закроете соединения с базой данных, со временем они вызовут утечки памяти.Вы можете использовать startManagingCursor, но наряду с этим вам необходимо закрыть соединение с БД.кстати, какой тип ошибки или исключения вы получаете при закрытии соединения с БД в методе onStop () или onDestroy ()

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