我在我的 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/