GreenDao如何实现回调

时间:2015-05-08 07:13:10

标签: java android greendao

我遇到了麻烦,当我尝试写入数据库时​​,我需要获取事件/回调。 我将greenDao lib添加到项目中,并且我能够在db中编写/删除。 但不知道如何在db下进行一些操作后获得回调。

在lib的介绍中,当操作完成" 时,读取" AsyncOperationListener以进行异步回调。 使用本教程: http://blog.surecase.eu/using-greendao-with-android-studio-ide/

有人可以帮我解决这个问题吗?

UPD:

好的,我们在存储中添加了一些列表

getMyObjectDao().getSession().startAsyncSession().insertOrReplaceInTx(MyObject.class, list);

错误

List<MyObject> items = getBoxDao(c).getSession().startAsyncSession().loadAll(MyObject.class);

我们如何从db?异步加载数据?

这是正确的解决方案吗?

            @Override
            public void onAsyncOperationCompleted(AsyncOperation operation) {
                String operationIs = null;

                switch (operation.getType()) {

                    case LoadAll:
                itemsList = BoxRepository.getAllBoxes(getApplicationContext());

1 个答案:

答案 0 :(得分:3)

默认情况下,所有操作都是同步执行的,无需进行任何回调。但最近版本的GreenDAO引入了AsyncSession,它可用于异步执行操作,并在其上提供方式集侦听器。请参阅以下示例:

    AsyncSession asyncSession = App.getInstance().daoSession.startAsyncSession();
    asyncSession.setListener( new AsyncOperationListener() {
        @Override
        public void onAsyncOperationCompleted(AsyncOperation operation) {
            // do whats needed
        }
    });
    asyncSession.insert(MyObject);

简单问一下有什么不清楚的地方!