有没有人知道rxlava或代码示例中的运算符如何将observable的结果返回到调用它的线程? 实际上它是Android上的另一个缓存)) 该应用程序分为几个层次:
UI |域(中)层(缓存,一些应用逻辑)|数据层(磁盘和网络)
问题是我不知道从不同的层调用哪个线程可观察。所以我必须进行冗余切换到Android主线程或另一个Schedullers.computation()
或Schedullers.io()
线程。
例如,UI层订阅从UI主线程(或任何其他,例如计算)到域层的可观察量,并且如果缓存数据立即存在于返回值中。但是如果我没有缓存的值域层在io线程中订阅数据层,如果我需要生成一些数据并返回到前一层订阅的线程,则磁盘或计算线程中的数据。
当然,我必须考虑并发数据访问。
提前致谢!
UPD:我只是理解,我只需删除任何Observable我从域层恢复.observeOn(AndroidSchedulers.mainThread())
。我只需要在订阅时或在我与UI交互但不在任何Domain层Observable上的地方添加最终.observeOn(AndroidSchedulers.mainThread())
。
答案 0 :(得分:0)
我不是一位经验丰富的Android开发人员,但据我所知,每个帖子都可以关联Looper
以及Handler
。 RxAndroid库让你从Handler创建一个Scheduler
,你可以在与looper相关联的线程上observeOn
。