android–Rxjava observeOn和subscribeOn在Retrofit中

android–Rxjava observeOn和subscribeOn在Retrofit中,第1张

概述observeOn:此方法只是更改下游所有 *** 作符的线程(https://medium.com/upday-devsxjava-subscribeon-vs-observeon-9af518ded53a)在调用API时,我想在IO线程上运行与服务器的通信,并希望在mainThread上处理结果.我在许多教程中看到了下面的代码,毫无疑问它是正确的.但我的理解是相

observeOn:
此方法只是更改下游所有 *** 作符的线程
(https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a)

在调用API时,我想在IO线程上运行与服务器的通信,并希望在mainThread上处理结果.

我在许多教程中看到了下面的代码,毫无疑问它是正确的.
但我的理解是相反的,所以我想知道我误解了什么.

requestInterface.callAPI()    .observeOn(AndroIDSchedulers.mainThread())    .subscribeOn(Schedulers.io())    .subscribe())

observeOn(AndroIDSchedulers.mainThread())

:observeOn更改下游所有 *** 作符的线程,但在本例中,实际调用API函数是否高于observeOn?

.subscribeOn(Schedulers.io())

:奇怪的是,它需要在主线程上订阅,但在IO线程上订阅?

请告诉我我的误解是什么?

解决方法:

基本,我们会有

Observable.subscribe(Observer);// => Observer observe Observable and Observable subscribe Observer

requestInterface.callAPI().subscribe(new Observer...); // requestInterface.callAPI() <=> Observable

从http://reactivex.io/documentation/operators/subscribeon.html

SubscribeOn

SubscribeOn operator designates which thread the Observable will begin operating on, no matter at what point in the chain of operators that operator is called

ObserveOn(影响2件事)

It instructs the Observable to send notifications to Observers on a specifIEd Scheduler.

ObserveOn affects the thread that the Observable will use below where that operator appears

registerUserReturnedobserverble()  // run on worker thread because subscribeOn(Schedulers.io()) (line 5).andThen(loginReturnObserverble()) // run on worker thread because subscribeOn(Schedulers.io()) (line 5).observeOn(AndroIDSchedulers.mainThread()).andThen(getUserDataReturnObserverble()) // run on main thread because .observeOn(AndroIDSchedulers.mainThread()) is above this operator (line 3).subscribeOn(Schedulers.io()).subscribe(new Observer<VoID>{    // run on main thread because observeOn(AndroIDSchedulers.mainThread()) });
总结

以上是内存溢出为你收集整理的android – Rxjava observeOn和subscribeOn在Retrofit中全部内容,希望文章能够帮你解决android – Rxjava observeOn和subscribeOn在Retrofit中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1119627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存