我得到“应用程序没有关闭在这里打开的游标或数据库对象”但我输入命令关闭它

时间:2012-03-18 22:55:33

标签: android database sqlite

这就是让我难过的原因。我在onCreate方法中打开数据库 然后我调用一个函数来打开一个游标做了很多事情,然后关闭函数末尾的光标。

然后我输入一个OnPause,然后在调用super.onPause函数

之前关闭数据库

我还有一个onResume重新打开数据库并调用相同的函数创建一个调用来刷新数据。

Finnaly我有一个onDestroy函数,在调用super.onDestroy之前也会关闭数据库。

这是与数据库相关的部分 http://pastebin.com/GVcnsVCc

这是我的错误: http://pastebin.com/Vd6Sdqzp

此外,当我开始此活动时,或者当我正在使用它时,我没有收到任何错误,当我点击某个内容转到另一个活动时,我会收到错误。

1 个答案:

答案 0 :(得分:0)

不要startManagingCursor(c)。这是a)现在已弃用,b)将尝试为您关闭()和重新查询()光标。这也意味着你不能自己关闭()光标,因为你也需要关闭数据库。 (tbh它适用于stopManagingCursor(c)

由于您似乎自己正在处理查询,因此您可以跳过该部分。

完成getdata()后,您也可以直接关闭数据库。除非您在应用程序处于活动状态时不断读取/写入数据,否则无需保持打开状态。