Используя RxJava на Kotlin Android, я делаю следующее:
У меня есть функция для создания растрового изображения, которое я запускаю в потоке ввода-вывода.
После того, как растровое изображение готовоЯ устанавливаю его в ImageView в главном потоке.
var observable : Observable<Bitmap> = Observable.just(makeBitmap(path))
var observer:Observer<Bitmap> = io.reactivex.Observer<Bitmap>() {
fun onSubscribe(d: Disposable) {
disposable = d
}
fun onNext(bitmap) {
imageView.setImageBitmap(bitmap)
}
fun onError(e:Throwable) {
}
fun onComplete() {
}
}
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer)
Мой вопрос таков: Можем ли мы достичь чего-то подобного, используя LiveData и наблюдая данные в компонентах архитектуры?
По сути, я хочу наблюдать кое-что в главном потоке, но тяжелая работа должна выполняться в отдельном потоке.