我有一个基本上可以执行以下操作的方法:
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()”调用,那么它可以正常工作。
我的问题是,为什么关闭数据库会影响返回的游标?这两个人比我意识到的更紧密地联系在一起吗?
谢谢
答案 0 :(得分:2)
Cursor 只不过是对数据库表进行操作的迭代器。使用Cursor,您不会立即加载整个表,但是每次需要时都会加载一行,因此您需要打开与数据库的连接才能正常工作。