2011-06-28 45 views
7

我的代码是象下面这样:数据库关闭后,游标是否仍然活着?

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

是,db.close后()被执行我的问题,是把光标C还活着,通航?

谢谢。

回答

8

不。您不想在数据库关闭时使用游标。当您拨打close()时,它会使对象(和它对应的光标)无效。

+2

然后我不知道什么时候应该关闭数据库,因为光标被返回供其他活动使用。有什么建议么? – Kai

+4

处理数据库查询的最简单也是最安全的方法是打开它,获取所需的数据,关闭游标,关闭数据库,然后返回请求的结果。游标仅用于遍历数据库查询结果。您通常不需要持久连接。在这种情况下,您可以将结果放入某种集合中并返回。 – DeeV

相关问题