领域查询通知不使用Kotlin触发

我无法使用Kotlin在Android中触发Realm Query Notifications。 我已经尝试完整(1)和lambda(2)语法分开:

object DataService { val realm: Realm = Realm.getDefaultInstance() var allDogs: RealmResults<Dog> = realm.where(Dog::class.java).findAll() fun start() { // (1) allDogs.addChangeListener(object: RealmChangeListener<RealmResults<Dog>> { override fun onChange(element: RealmResults<Dog>?) { print("Ping?") } }) // (2) allDogs.addChangeListener { // This listener doesn't fire when I create managed the Dog object below print("Ping?") } realm.executeTransaction { realm.createObject(Dog::class.java) } } } 

我想知道是否必须从文档中的这一行:

更改侦听器仅适用于Looper线程。 对于非循环线程,您必须手动使用Realm.waitForChange()。

这并不是因为您使用kotlin,而是因为您没有对RealmResult对象进行任何引用,如果您正在为它们创建侦听器,则首先将结果保存为属性或类成员,然后添加侦听器。