Android Kotlin Realm Правильный способ запроса + вернуть неуправляемые элементы в Bg Thread

Каков правильный способ запроса и возврата неуправляемого результата элементов с помощью области, все в фоновом потоке ?. Я использую somethibf следующим образом:

return Observable.just(1) .subscribeOn(Schedulers.io()) .map { val realm = Realm.getDefaultInstance() val results = realm.where(ItemRealm::class.java) .equalTo("sent", false).findAll() realm to results } .map { val (realm, results) = it val unManagedResults = realm.copyFromRealm(results) realm.close() unManagedResults } } 

И затем привязать это наблюдаемое к другому, которое опубликует результаты на сервере.

Решение работает, хотя это немного уродливо по этим аспектам:

Итак, каков правильный способ получения неуправляемых результатов Query and Return в фоновом потоке (в каком-то контексте мне нужно отправить результаты на сервер, в фоновом режиме и поскольку эта задача полностью независима от текущего потока данных приложения, поэтому должен быть от основного потока).

Предлагаемая версия:

 return Observable.fromCallable { Realm.getDefaultInstance().use { realm -> realm.copyFromRealm( realm.where(ItemRealm::class.java) .equalTo(ItemRealm.FIELD_SEND, false).findAll() ) } } 

Таким образом вы не сможете управлять объектами Realm:

  return Observable.defer(() -> { try(Realm realm = Realm.getDefaultInstance()) { return Observable.just( realm.copyFromRealm( realm.where(ItemRealm.class).equalTo("sent", false).findAll() ) ); } }).subscribeOn(Schedulers.io()); 

Хотя этот ответ – Java, ответ Котлин находится всего в двух шагах.

Intereting Posts
Связывание слушателя; Не удается найти сеттер Kotlin: переопределение общего свойства внутри подтипа Работа с вкладками в Котлине (Android Studio) Номер Android с RxJava обрабатывает пустой результат запроса Вызов метода Java из Kotlin со списком параметров Как создать свойство без аксессуаров в Котлине? Как создать построитель для класса данных Kotlin со многими неизменяемыми свойствами Ошибка с макетными методами Удостоверьтесь, что multipart имеет значение null в контроллере останова Любой способ унаследовать один и тот же общий интерфейс дважды (с отдельными типами) в Котлин? Как отсортировать список объектов в случае нечувствительного порядка? Нарисуйте линию на холсте медленно, как анимация Возможно ли получить доступ к типам Kotlin из Java? Как показать один элемент, выбранный в recyclerview, используя kotlin Как MutableMap <String, Any?> Передает значение var, когда я использую делегат в Kotlin?