Android - 关闭数据库后可以使用SQLite Cursor吗?

2022-09-03 15:00:47

首先,如果我错了,请纠正我,但是如果您关闭数据库连接,则无法使用从中获取的游标,对吗?

db.open();
Cursor c = db.query(true, "MyTable", columns, null, null, null, null, null, null);
db.close();

// The Cursor is empty now because the db was closed...
c.moveToNext();
Log.v(TAG, c.toString(0));

那么在关闭数据库后,有没有办法使用游标呢?就像有没有办法把它传递到其他地方,并像对象一样使用它?还是始终必须使数据库连接保持打开状态,直到完成游标操作?


答案 1

否,正如下面的链接中所说,如果关闭数据库,游标将变为无效。

数据库关闭后,游标是否仍处于活动状态?


答案 2

首先,如果我错了,请纠正我,但是如果您关闭数据库连接,则无法使用从中获取的游标,对吗?

正确。

那么在关闭数据库后,有没有办法使用游标呢?

我不这么认为。当我完成游标时,我总是关闭数据库,即使我将游标传递给另一个 Cursor 对象。

就像有没有办法把它传递到其他地方,并像对象一样使用它?

创建将要使用的方法,并在您需要的任何位置使用该方法。(还要创建在完成后关闭db的方法)return cursorobject;

还是始终必须使数据库连接保持打开状态,直到完成游标操作?

否则光标会搞砸。


推荐