为什么在使用executeTransactionAsync
而不是executeTransaction
时才允许传递回调方法?
答案 0 :(得分:0)
因为executeTransaction
是同步的,所以一旦方法完成,就完成了。也就是说我们考虑过添加它,请参阅https://github.com/realm/realm-java/issues/3048
答案 1 :(得分:0)
本地提交更新looper线程上的Realm实例,但直到下一个looper事件才会刷新结果。 (您在>>本地提交后获得的任何结果都是最新的。)
因此,对于在本地提交中进行的更改,预期的用法是在事务之后立即重新查询RealmResults(不太喜欢),或者使用RealmChangeListener
来知道结果'内部已经改变(更优先)。
那就是说,当我已经准备好结果时,Melchior对同步交易回调的答案的feature request由我做出:)