Я создаю экземпляр SQLiteDatabase и вызываю getReadableDatabase() или getWritableDatabase() и манипулирую данными таким образом, но я никогда не закрываю базу данных через db.close(). Это плохо, чтобы не закрыть его? Я пытался добавить db.close() к моим onStop() или onDestroy() методам, но он просто принудительно закрывается.
getReadableDatabase()
getWritableDatabase()
db.close()
onStop()
onDestroy()
Откройте соединение как можно позже.Закройте его как можно скорее.Закройте его в блоке finally, чтобы убедиться, что он закрыт.
И, как правило, распоряжайтесь ресурсами в обратном порядке их получения.
Вы в основном раздуваете приложение, открывая дополнительный курсор.Лучшая практика - закрыть соединение.
Я заметил, что возникает много исключений, если вы этого не делаете.
Если вы не закроете соединения с базой данных, со временем они вызовут утечки памяти.Вы можете использовать startManagingCursor, но наряду с этим вам необходимо закрыть соединение с БД.кстати, какой тип ошибки или исключения вы получаете при закрытии соединения с БД в методе onStop () или onDestroy ()