Уведомление о запросе в Realm не срабатывает с использованием Kotlin

Я не могу получить уведомление о запросе Realm Query в Android с помощью Kotlin. Я пробовал полный (1) и лямбда (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. Для потоков non-looper вам необходимо вручную использовать Realm.waitForChange ().

Это происходит не потому, что вы используете kotlin, но потому, что вы не храните ссылки на объекты RealmResult, если вы создаете для них слушателей, сначала сохраните результаты как свойства или члены класса, а затем добавьте слушателей.