【问题标题】:Will cursor be still alive after database is closed?关闭数据库后游标是否仍然存在?
【发布时间】:2011-06-28 21:44:05
【问题描述】:

我的代码如下:

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

我的问题是,db.close()执行后,游标c是否还活着且可以导航?

谢谢。

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    没有。您不想在数据库关闭时使用游标。当您调用close() 时,它会使对象(及其对应的光标)无效。

    【讨论】:

    • 那么我不知道什么时候应该关闭数据库,因为游标被返回以供其他活动使用。有什么建议吗?
    • 处理数据库查询的最简单也可能是最安全的方法是打开它,获取您需要的数据,关闭游标,关闭数据库,然后返回请求的结果。游标仅用于遍历数据库查询结果。您通常不想要持久连接。在这种情况下,您可以将结果放入某种集合中并返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2013-04-24
    • 2015-11-26
    相关资源
    最近更新 更多