android - SQLBrite 会自动关闭游标吗?

标签 android sqlbrite

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

java.lang.Throwable: Explicit termination method 'close' not called at dalvik.system.CloseGuard.open(CloseGuard.java:180) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:809) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)

但我在 docs 中没有看到任何内容说明我应该显式调用 cursor.close

编辑 1

这是给我一个光标未关闭错误的 fragment :

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,则无需手动关闭它。

关于android - SQLBrite 会自动关闭游标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43531921/

相关文章:

android - 可以从 Android SQLiteConstraintException 获取特定的错误详细信息吗?

android - Android-更改设备时录制的音频文件大小不同

android - 单击 LinearLayout 显示选择蒙版效果

android - 如何选择带有 ACTION_SENDTO 的电子邮件应用程序也支持附件?

android - 连接不同类型的可观察对象

android - 工作线程上的 SqlBrite 查询

android - 将 SQLBrite 逻辑提取到 Android 中的外部类

android - Android 中的多选下拉菜单

Android - 如何从字符串中解析 JsonArray?

android - 订阅多个 Observable 的适配器