数据库关闭后光标是否仍然存在?

Kai*_*Kai 7 sqlite android

我的代码如下:

Cursor getResults() {
    SQLiteDatabase db = dbHelper.getReadableDatabase();
    Cursor c = qb.query(db, projection, null, null,
                        null, null, null);
    db.close();
    return c;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,在执行db.close()之后,光标c是否仍然存活且可导航?

谢谢.

Dee*_*eeV 8

不.您不希望在数据库关闭时使用光标.当你调用时close(),它使对象(和它的相应光标)无效.

  • 处理数据库查询的最简单,也可能是最安全的方法是打开它,获取所需数据,关闭游标,关闭数据库,然后返回请求的结果.游标仅用于遍历数据库查询结果.您通常不希望持久连接.在这种情况下,您可以将结果放入某种类型的集合中并返回该结果. (4认同)
  • 然后我不知道什么时候应该关闭数据库,因为光标被返回以供其他活动使用.有什么建议? (2认同)