我的应用程序给我这个警告
数据库 ‘+data+data+com_example_test+database’ 的 SQLiteConnection 对象被泄露了!请修复您的应用程序以正确结束正在进行的事务并在不再需要时关闭数据库。
但是每次使用后我都会关闭 db 对象和游标。
try {
while (cursor.moveToNext()) {
...
}
} finally {
if (cursor != null && !cursor.isClosed())
cursor.close();
}
...
db.close();
你能帮我理解问题是什么吗?谢谢!!!
更新! 尽管一切都关闭了,但我从这篇文章 SQLite Connection leaked 中尝试了这个解决方案
而且我不再有内存泄漏,这是一个好的解决方案吗?
原文由 user3906040 发布,翻译遵循 CC BY-SA 4.0 许可协议
可能的解决方案:
not committed the transactions
你已经开始(一旦你开始你应该总是关闭交易)Sqlite
,请检查您是否已关闭打开的游标—(看起来您已经从您发布的代码中完成了这一步)db.close
移动到finally
块db.close
然后使用context.deleteDatabase(...)
dbHelper.getWritableDatabase()
创建它