1

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

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()”调用,那么它工作正常。

我的问题是,为什么这里关闭数据库会影响返回的游标?这两者的联系比我想象的更紧密吗?

谢谢

4

1 回答 1

2

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

于 2013-09-16T01:44:43.813 回答