1

我制作了自己的getCursor方法,看起来像这样

protected Cursor getCursor(String selectQuery) {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    return cursor;
}

cursor.close()由于在返回之前我无法调用,因此像这样打开光标是否危险?或者它会在方法返回其对象后立即关闭?

4

2 回答 2

1

如果您需要具有活动生命周期的光标,请使用 call Activity.startManagingCursor(Cursor c),否则您应该明确关闭光标。

于 2013-09-03T15:58:47.487 回答
1

你会在某个时候得到“TooManyCursorsException”——或者类似的东西。在您使用光标的地方,您可以尝试 {} finally{} 块,最后您可以说:

if(cursor != null) {
   cursor.close();
}

在从 DAO 读取数据并在更高级别使用它时,我从 web 编程中被用来创建模型 pojos。我从不将光标发送到上面的图层。

于 2013-09-03T15:00:56.307 回答