关闭DataSource和使用游标

时间:2013-09-16 01:35:53

标签: android database

我有一个基本上可以执行以下操作的方法:

Cursor cursor;                                  
cursor = myCard.queryRandomCard(this);              
cursor.moveToFirst();

在queryRandomCard方法中:

DataSource datasource = new DataSource(context);
datasource.open();
Cursor cursor  = (SQL STATEMENT IS HERE AND WORKS); 
datasource.close();
return cursor;

问题在于,在重新启动时,我在执行“cursor.moveToFirst()”时遇到错误,该错误表示“连接池已关闭”。但是,如果我删除“datasource.close()”调用,那么它可以正常工作。

我的问题是,为什么关闭数据库会影响返回的游标?这两个人比我意识到的更紧密地联系在一起吗?

谢谢

1 个答案:

答案 0 :(得分:2)

Cursor 只不过是对数据库表进行操作的迭代器。使用Cursor,您不会立即加载整个表,但是每次需要时都会加载一行,因此您需要打开与数据库的连接才能正常工作。