Уведомление о запросе в 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, если вы создаете для них слушателей, сначала сохраните результаты как свойства или члены класса, а затем добавьте слушателей.

Intereting Posts
Kotlin и новый ActivityTestRule: @Rule должен быть общедоступным Как правильно использовать URL-адрес с Kotlin Android Поддерживает ли kotlin создание класса, реализующего интерфейс за пределами его файла определения? Проблемы с подключением API-интерфейсов доступа к приложениям с поддержкой – Android Как изменить переменную экземпляра из отдельной AsyncTask Живой шаблон не работает в Котлине Отключить проверку использования пакета «kotlin» в Gradle Каков самый ранний уровень API Android, с которым я могу использовать Kotlin? OpenGL Texture Glitch с лицами Нажатие текстового поля для изменения фрагмента Использование задач ant от gradle-script-kotlin Как переопределенные свойства обрабатываются в блоках init? Ошибка: (2, 0) Не удалось найти метод 'org.gradle.api.internal.file.DefaultSourceDirectorySet Как разбить строку и установить разделители между разделенными частями в Котлине? Spring @Autowire не работает в Котлине