我对ReactiveX还是陌生的,正在尝试弄清楚如何完成下一个任务。我想为此使用ReactiveX(出于教育目的),尽管可能不合适。所以,更重要的是。
困难是什么?
现在,我通过LiveData和ViewModel实现了它。
class X : ViewModel{
val result: MutableViewModel<Event<Result>>
fun op(){
Completable.fromAction {...}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result.value = ... },
{ throwable -> result.value = ...})
}
}
我从here到Event<T>
的地方
为了简化理解,我简化了上面的代码。它起作用了,但是有代码味。功能与其结果之间没有明确的关系。假设函数返回Observable,活动将其存储到ViewModel并对其进行订阅。但是活动暂停呢? LiveData会自动执行此操作。以及如何从已破坏和已创建的活动(例如配置更改)转移订阅?如何自动退订和订阅结果?是否可以通过RxJava?