保持打开Sqlite游标

时间:2010-09-17 02:03:31

标签: android sqlite cursor

在我开发的Android应用程序中,我打开一个带有相当大的结果集(~1k行)的查询的游标,并且我将它无限期地保持打开状态。这是一个好的做法吗?如果没有,我应该关闭onClose()处理程序中的光标,然后在onStart()处理程序中重新打开它吗?

该应用程序似乎运行良好,但它有时会在闲置很长一段时间后随机崩溃,我认为它可能与光标有关。

1 个答案:

答案 0 :(得分:1)

光标不应该永远保持打开状态,因为当你的应用程序最终被终止时,它会使数据库处于不正确的状态,如果你注意到,会导致一些错误显示在日志中。

您可以做的是在onStop中将其关闭,然后在onStart中重新打开它。或者,您可以通过在活动中调用startManagingCursor(c)来让Android自动处理此问题。

docs