如何在LoaderManager中使用Ormlite

时间:2013-03-09 07:28:02

标签: android ormlite

我在Android应用中成功使用了OrmLite。 我正在将我的应用程序移动到新的CursorLoader逻辑,我想知道如何使用带有CursorLoader的Ormlite而不使用ContentProvider。

不可能吗?

1 个答案:

答案 0 :(得分:4)

我认为最好的解决方案是实现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