【发布时间】:2020-02-21 12:15:41
【问题描述】:
我是coroutines 的新手。所以现在我看看如何使用协程而不是处理程序
处理程序代码:
fun Handler.repostDelayed(func: Runnable, delay: Long) {
removeCallbacksAndMessages(null)
postDelayed(func, delay)
}
协程中的类比
inline fun AppCompatActivity.repostDelayed(crossinline func: () -> Unit, delay: Long) {
lifecycleScope.cancel()
lifecycleScope.launch {
delay(delay) //debounce timeOut
func()
}
}
但它不起作用。 请您修复我对 Coroutines 的表达方式吗?
【问题讨论】:
-
你不能只是取消协程作用域然后希望继续使用它。您可以通过取消特定作业来修复它,但它仍然是不雅的代码。
标签: java android kotlin handler kotlin-coroutines