SQLBrite会自动关闭游标吗?

时间:2017-04-21 00:16:15

标签: android sqlbrite

我怀疑sqlbrite自动关闭光标,似乎它不会这样做,因为我不断得到:

  

java.lang.Throwable:显式终止方法' close'不叫   dalvik.system.CloseGuard.open(CloseGuard.java:180)at   android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:809)   在   android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)

但我在docs中没有看到任何声明我应该明确调用cursor.close的内容。

编辑1

以下是给我一个游标而非关闭错误的片段:

DbProvider.db(getActivity()).createQuery(Item.NAME, sqlQuery, selectionArgs).mapToList(new Func1<Cursor, ItemEntity>() {
    @Override
    public ItemEntity call(Cursor cursor) {
        return new ItemEntity(cursor);
    }
}).subscribe(itemEntities -> {
    Debug.info(this, "items " + itemEntities );
}, Throwable::printStackTrace, () -> {});

1 个答案:

答案 0 :(得分:1)

如果您正在呼叫query.run()并获得光标,则需要手动关闭它。如果您使用的是mapToList / mapToOne api,则无需手动关闭它。