【发布时间】:2020-09-18 21:23:00
【问题描述】:
我正在使用第三方 SDK,它有一个我需要观察的 LiveData 对象,以便设置我的自定义对象的值:
fun setValueAndDoSomething(activity: FragmentActivity) {
var myCustomObject: MyCustomObject? = null
sdkComponent.observe(activity, Observer { sdkResult ->
myCustomObject = MyCustomObject(sdkResult)
})
// Wait until myCustomObject is not null
myCustomObject.doSomething()
}
我想等到 SDK LiveData 的回调被触发,以便 myCustomObject 不为空,然后继续执行其余的操作。如何使用 Kotlin Coroutines 实现这一目标?
【问题讨论】:
-
这里为什么需要使用协程?为什么不在观察者回调中创建对象后立即调用
doSomething?实际上,为了等待对象不为空,库必须返回一个Deferred对象。
标签: android kotlin android-livedata kotlin-coroutines