改造-带有RxKotlin的android.os.NetworkOnMainThreadException

时间:2019-11-11 05:21:00

标签: android android-viewmodel flatmap rx-kotlin

我已经在Android中创建了rx函数来从int sequential_search(int seq_data, int LAST_INDEX, int search_target, int target_location) 调用网络调用,它会解析主线程函数上的网络。

我只是更改了几行有效的代码。但我需要知道其原因,因为它使用相同的构建器模式来创建view-model。 在平面图调用成功后,尝试更改rx-call.doOnSubscribe()doOnComplete ()后,是否可以?这是怎么发生的?

.applySchedulers()

2 个答案:

答案 0 :(得分:1)

  

applySchedulers()在平面图调用后起作用了吗?这是怎么发生的?

observeOn()影响下游的一切。如果在flatMap()之后有一个observeOn(),它将在该调度程序上执行。

类似subscribeOn()影响上游链。

由于这些原因,对于大多数用例,您希望将调度程序应用在rx链的末尾而不是中间。

答案 1 :(得分:0)

在您的可观察对象中添加subscribeOn(Schedulers.io())observeOn(AndroidSchedulers.mainThread())