gpt4 book ai didi

java - GreenDao 异步 loadAll 方法

转载 作者:行者123 更新时间:2023-11-29 03:09:37 24 4
gpt4 key购买 nike

我可以使用 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 类,它的 getAllBoxes() 会同步加载所有数据,但您可以轻松地添加另一个像这样异步加载所有数据的方法:

public static void getAllBoxes(Context context, AsyncOperationListener listener) {
AsyncSession asyncSession = App.getInstance().daoSession.startAsyncSession();
asyncSession.setListener(listener);
asyncSession.loadAll(Box.class);
}

关于java - GreenDao 异步 loadAll 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com