【发布时间】:2019-03-19 18:26:26
【问题描述】:
如何用协程替换我的回调?这是可能的? 我尝试使用 suspendCoroutine 替换适配器项的 onclick 事件:
suspend fun waitForButtonClick() = suspendCoroutine<String> { continuation ->
button.setOnClickListener {
continuation.resume("My Data")
}
}
关于活动:
GlobalScope.launch {
val callbackResult = adapter.waitForButtonClick()
}
问题是我只能调用一次waitForButtonClick,因为resume只能执行一次。 如何用 Kotlin 协程替换 onClickCallback?
【问题讨论】:
-
能否请您扩展使用示例?如果多次单击处理程序,您希望它如何工作?
-
您可以将
OnClickListener引用替换为您之后需要的引用,然后才能继续继续 -
但是当我尝试调用 resume 时,协程会抛出一个错误,我只能调用 resume 一次
标签: android kotlin kotlin-coroutines