android - 如何将 Ormlite 与 LoaderManager 一起使用

标签 android ormlite

我在我的 Android 应用程序中成功使用了 OrmLite。 我正在将我的应用程序迁移到新的 CursorLoader 逻辑,我想知道如何在没有 ContentProvider 的情况下将 Ormlite 与 CursorLoader 一起使用。

这不可能吗?

最佳答案

我认为最好的解决方案是为 CursorLoader 实现子类,并在 loadInBackground() 中从 ORM 获取和返回游标。在我的例子中是这样的

@Override
public Cursor loadInBackground() {
    ...
    Dao<Account, String> dao = mHelper.getDao();
    QueryBuilder<Account, String> qb = dao.queryBuilder();                    
    CloseableIterator<Account> iterator = dao.iterator(qb.prepare());
    try {
        AndroidDatabaseResults results =
        (AndroidDatabaseResults)iterator.getRawResults();
        cursor = results.getRawCursor();               
    }
    catch(Exception ex){                    
        ex.printStackTrace();
    }
    ...
    return cursor;
}

您可以像使用其他加载程序一样使用此加载程序。您可以在此处查看自定义 AsyncTaskLoader 的完整示例:Example

关于android - 如何将 Ormlite 与 LoaderManager 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308369/

相关文章:

android - 在 Picker 中添加 API 数据值 react native

android - Google 日历崩溃,因为我添加了一个结束时间早于开始时间的事件

ormlite select count(*) as typeCount 按类型分组

java - 如何通过按外部对象字段的值进行选择来构建查询

android - 使用 ormlite android 存储对象字段

android - 使用 xml pull 解析器的困难

android - 合并 2 个 observable 并从第一个完成的 observable 中获取输出

android - 即使我完成 Activity ,mediaPlayer 也不会停止

android - 在 ORMLite (Android) 中使用 UUID 作为 id

java - 如何使用 ORMLite 外来对象而不生成 id?