关闭还是不关闭?

时间:2010-10-08 13:16:49

标签: android sqlite cursor

在最近几天,由于我的应用程序中的数据库泄漏,我经常收到很多错误消息,所以现在我打开数据库,从中获取查询结果并再次关闭数据库。

但我也使用了cursoradapter来获取autocompletetextview。

我是否也应该这样做:打开DB,获取光标,关闭DB?!

我的意思是,由于没有这样做,我没有遇到任何问题,但是......

所以我需要专家的提示,你的提示

3 个答案:

答案 0 :(得分:2)

您应该能够在onCreate方法中打开数据库并在onDestroy方法中关闭它。只要活动“活着”并且最终将被清理,这将保证它可用。

此外,您应该在与适配器一起使用的光标上使用“startManagingCursor”。这将确保分别在暂停,恢复和销毁时根据需要停用,重新获取和关闭它。未完成适配器中使用的游标应在完成从中获取数据后立即关闭。

如果遵守这些规则,就不会有泄漏。

答案 1 :(得分:0)

您应该始终关闭数据库连接。

答案 2 :(得分:0)

不要考虑使用finalize()来关闭数据库连接。无法保证什么时候会被召唤,或者甚至会被召唤。有关详细信息,请参阅“Effective Java”第二版第7项。

你可以利用onPause(),onResume()来关闭/打开连接吗?我相信android可以保证那些被称为。