Android 我应该什么时候关闭光标和db?

Android 我应该什么时候关闭光标和db?,android,android-sqlite,android-cursor,Android,Android Sqlite,Android Cursor,我在自定义视图的不同方法中多次使用同一光标。我应该在每次使用后关闭光标,还是可以一直打开直到视图被销毁?对于数据库也是一样,一旦创建了保存此视图的活动,就可以打开它,并在该活动被销毁时关闭它吗?当我如上所述执行操作时,我不断收到一个错误“close()从未在数据库上显式调用过…”。您可能希望在不需要时关闭到DB的所有连接。如果您以后需要连接,也可以保留连接,即当活动要销毁时关闭连接。您可以尝试将数据库和光标代码移动到onResume和onPause以避免该错误。但我想一个更干净的方法是在你的活动

我在自定义视图的不同方法中多次使用同一光标。我应该在每次使用后关闭光标,还是可以一直打开直到视图被销毁?对于数据库也是一样,一旦创建了保存此视图的活动,就可以打开它,并在该活动被销毁时关闭它吗?当我如上所述执行操作时,我不断收到一个错误“close()从未在数据库上显式调用过…”。

您可能希望在不需要时关闭到DB的所有连接。如果您以后需要连接,也可以保留连接,即当活动要销毁时关闭连接。

您可以尝试将数据库和光标代码移动到onResume和onPause以避免该错误。但我想一个更干净的方法是在你的活动中实施。你考虑过吗

我应该在每次使用后关闭光标,还是可以一直打开直到 风景被破坏了

视情况而定。如果光标结果不会同时改变(例如,远程连接修改数据库),则可以。别忘了让Android自动管理您的光标(例如,如果您的应用程序崩溃,请关闭光标)

对于数据库也是一样,一旦活动发生,它是否可以打开 保存在活动被销毁时是否创建并关闭此视图

是的,您可以在
onResume()
中打开,在
onPause()
回调中关闭,或者当您知道您的数据库将不再被查询时关闭

我不断收到一个错误,从未显式调用过“close() 在数据库上…“当我按照上述操作时


只有当你的应用程序崩溃时,这才是正常的。如果你像我上面说的那样做,就不应该发生。

好的。你知道这个错误可能来自哪里吗?db是在onCreate()中打开的,在onStop()中关闭的,为什么它仍然说它没有关闭?