我在我的Android应用程序中成功使用OrmLite.我正在将我的应用程序移动到新的CursorLoader逻辑,我想知道如何使用带有CursorLoader的Ormlite而不使用ContentProvider.
不可能吗?
我认为最好的解决方案是实现 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;
}
Run Code Online (Sandbox Code Playgroud)
您可以像其他加载器一样使用此加载器。您可以在此处查看自定义 AsyncTaskLoader 的完整示例:示例