android - 如何将回调/流返回给调用者线程?
问题描述
我有一些“A”类,其内部工作是使用 rx 或带有流的协同程序执行的。类“A”不应该返回任何 rx/协程(和流)的实例,它们的工作应该被隐藏,我们需要未来的回调结果并在自定义观察者上观察。
调用者类“B”可以在主(UI)线程或其他线程上调用 A 的方法。如果方法是在 Ui 线程上调用的,就很容易了,因为我们可以在 Main 线程上观察并使用相应的协程作用域。
但是如果调用者的线程不是主线程,我们如何处理这种情况呢?
解决方案
利用Handler
class A {
private val mainHandler = Handler(Looper.getMainLooper())
fun <T> observe(onChanged: (T) -> Unit) {
...
mainHandler.post { onChanged(value) }
}
}
推荐阅读
- python-3.x - 应该使用来自 NTP 时间服务器的什么时间来设置我的时钟?
- html - 引导移动视图无法正常工作
- java - 如何从 Firebase 数据库中检索模型对象列表
- python - 使用 Python 的条件语句中多个逻辑运算符的间歇性问题
- vim - 在 lua.init 文件中设置 vimwiki_list
- javascript - 使用对象中的多个值过滤对象数组
- node.js - MongoDB 正则表达式和运算符 - 如何通过两个值查找
- react-native - React Native Elements Header 组件中的动态标题
- scala - 如何在我的 Scala 类中使用案例类对象
- curl - curl post命令没有响应