SQLBrite会自动关闭光标



我对sqlbrite关闭光标有疑问,似乎没有这样做:

java.lang.throwable:显式终止方法"关闭"未调用 dalvik.system.closeguard.open(closeguard.java:180(at android.database.sqlite.sqlitedatabase.openinner(sqlitedatabase.java:809( 在 android.database.sqlite.sqlitedatabase.open(sqlitedatabase.java:793(

,但我在文档中看不到任何内容,表明我应该明确调用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, () -> {});

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

最新更新