我遇到了麻烦,当我尝试写入数据库时,我需要获取事件/回调。 我将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());
答案 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);
简单问一下有什么不清楚的地方!