在最近几天,由于我的应用程序中的数据库泄漏,我经常收到很多错误消息,所以现在我打开数据库,从中获取查询结果并再次关闭数据库。
但我也使用了cursoradapter来获取autocompletetextview。
我是否也应该这样做:打开DB,获取光标,关闭DB?!
我的意思是,由于没有这样做,我没有遇到任何问题,但是......
所以我需要专家的提示,你的提示
答案 0 :(得分:2)
您应该能够在onCreate方法中打开数据库并在onDestroy方法中关闭它。只要活动“活着”并且最终将被清理,这将保证它可用。
此外,您应该在与适配器一起使用的光标上使用“startManagingCursor”。这将确保分别在暂停,恢复和销毁时根据需要停用,重新获取和关闭它。未完成适配器中使用的游标应在完成从中获取数据后立即关闭。
如果遵守这些规则,就不会有泄漏。
答案 1 :(得分:0)
您应该始终关闭数据库连接。
答案 2 :(得分:0)
不要考虑使用finalize()来关闭数据库连接。无法保证什么时候会被召唤,或者甚至会被召唤。有关详细信息,请参阅“Effective Java”第二版第7项。
你可以利用onPause(),onResume()来关闭/打开连接吗?我相信android可以保证那些被称为。