我有一个数据库处理程序类,用于查询数据库并返回游标。
这是方法:
public Cursor getData() {
String[] columns = new String[] { KEY_ROWID, KEY_NAME, KEY_TEL,
KEY_EMAIL, KEY_COMMENTS };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, KEY_NAME + " ASC", null);
if (c != null) {
c.moveToFirst();
}
return c;
可以看出,我将指针设置为准备返回的光标中的第一个元素。我目前收到一个“正在完成一个尚未停用或关闭的游标”异常,这是我使用的唯一游标,我没有在其上显式调用 .close()。我这样做的原因是它需要一个返回类型,我不能在返回它之前关闭游标,因为这会设置一个空指针错误。
以下是游标返回后的处理方式:
DBHandler search = new DBHandler(this, null, null);
search.open();
Cursor cursor = search.getData();
search.close();
startManagingCursor(cursor);
有人可以指出我正确的方向以帮助关闭我的数据库处理程序类中的光标。