android - 转换 Observable> 列出
问题描述
我想从中获取MutableLiveData<List<Country>>()
对象Observable<List<Country>>
,但我找不到方法。
我正在使用下面的实现,但它不起作用。有没有其他方法可以实现它,或者我当前的实现做错了什么?
dataManagerAnonymous.countries.toList().blockingGet().single()
上面的代码显示NetworkOnMainThreadException
并崩溃了应用程序。
解决方案
dataManagerAnonymous
.countires
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { result ->
// result is List<Country>
}
dataManagerAnonymous.countires
可能会执行网络请求,这应该在后台线程上完成,以防止 UI 线程阻塞。subscribeOn(Schedulers.io())
在后台线程上调用您的请求。observeOn(AndroidSchedulers.mainThread())
允许您在 UI 线程上使用此调用的结果。当您的请求成功完成并且结果数据准备好处理时,将调用订阅块。
推荐阅读
- html - 巨型菜单中的砌体式菜单栏
- django - Django 中的本地和产品 Settings.py
- spring-boot - 将数据索引到 AWS elasticsearch 服务时 Elasticsearch resthighlevelclient Noclassfound 错误
- php - PHP / XML - 未定义命名空间
- javascript - 从一个字符串中删除另一个字符串中包含的字符
- python - 在 spyder 中启动内核 ipython 控制台时出错
- vue.js - 带有mapGetter的VueJs元素选择列表不起作用
- ios - 如何使用 API 调用实现 XCUITest
- css - 如何在使用面板中的按钮时将切换图标保持在最右侧,PrimeNg
- c++ - 如何在静脉 omnet++ 中实现 V2I 通信?