使用ListView关闭数据库和光标

时间:2012-07-29 04:56:49

标签: android sqlite listview android-listview

我有一个使用onCreate()datasource.open()的{​​{1}}方法。如果在datasource.close()末尾发出datasource.close();,我的ListView SimpleCursorAdapter始终为空。

如果我从onCreate()的末尾删除datasource.close();,则会填充ListView。

我无法弄明白为什么会出现这种情况。

任何人都有任何关于为什么会这样的文件?

示例代码:

onCreate()

2 个答案:

答案 0 :(得分:1)

如果您想手动管理光标,请在活动deactiveate()中调用onStop,然后在恢复时调用requery()

但是我会简单地使用Activity.startManagingCursor()来处理这个问题。此方法已标记为已弃用,因此,如果您要完全按照Google建议的那样执行操作,则需要使用CursorLoader类来异步处理游标。坦率地说,除非您的数据库非常大和/或您的查询运行速度非常慢,否则使用弃用方法没有任何害处,它不会在一段时间内发生。

答案 1 :(得分:0)

实际上我认为datasource.close()方法调用应该放在onPause()onStop()onDestroy方法的某处。但是没有必要 如果您要发布一些代码片段,我可以提供更准确的答案..