GreenDao 异步 loadAll 方法
GreenDao asynchronously loadAll methood
我可以像这样使用 GreeDAO
的 AsyncSession
成功地异步插入行:
getMyObjectDao().getSession().startAsyncSession().insertOrReplaceInTx(MyObject.class, list);
如何将数据库中的所有对象异步加载到 ArrayList 中。到目前为止,我已经尝试了以下代码,但它不起作用:
1-
<List>items = getBoxDao(c).getSession().startAsyncSession().loadAll(MyObject.class)
;
2-
@Override
public void onAsyncOperationCompleted(AsyncOperation operation) {
String operationIs = null;
switch (operation.getType()) {
case LoadAll:
itemsList = BoxRepository.getAllBoxes(getApplicationContext());
您可以使用 operation.getResult()
方法获取获取的 arrayList,如下所示:
AsyncSession asyncSession = App.getInstance().daoSession.startAsyncSession();
asyncSession.setListener(new AsyncOperationListener() {
@Override
public void onAsyncOperationCompleted(AsyncOperation operation) {
itemsList = (List<MyObject>) operation.getResult();
}
});
asyncSession.loadAll(MyObject.class);
更新:
BoxRepository
只是一个 Helper class,它的 getAllBoxes()
同步加载所有数据,但您可以轻松添加另一个异步加载所有数据的方法:
public static void getAllBoxes(Context context, AsyncOperationListener listener) {
AsyncSession asyncSession = App.getInstance().daoSession.startAsyncSession();
asyncSession.setListener(listener);
asyncSession.loadAll(Box.class);
}
我可以像这样使用 GreeDAO
的 AsyncSession
成功地异步插入行:
getMyObjectDao().getSession().startAsyncSession().insertOrReplaceInTx(MyObject.class, list);
如何将数据库中的所有对象异步加载到 ArrayList 中。到目前为止,我已经尝试了以下代码,但它不起作用:
1-
<List>items = getBoxDao(c).getSession().startAsyncSession().loadAll(MyObject.class)
;
2-
@Override
public void onAsyncOperationCompleted(AsyncOperation operation) {
String operationIs = null;
switch (operation.getType()) {
case LoadAll:
itemsList = BoxRepository.getAllBoxes(getApplicationContext());
您可以使用 operation.getResult()
方法获取获取的 arrayList,如下所示:
AsyncSession asyncSession = App.getInstance().daoSession.startAsyncSession();
asyncSession.setListener(new AsyncOperationListener() {
@Override
public void onAsyncOperationCompleted(AsyncOperation operation) {
itemsList = (List<MyObject>) operation.getResult();
}
});
asyncSession.loadAll(MyObject.class);
更新:
BoxRepository
只是一个 Helper class,它的 getAllBoxes()
同步加载所有数据,但您可以轻松添加另一个异步加载所有数据的方法:
public static void getAllBoxes(Context context, AsyncOperationListener listener) {
AsyncSession asyncSession = App.getInstance().daoSession.startAsyncSession();
asyncSession.setListener(listener);
asyncSession.loadAll(Box.class);
}