【发布时间】:2021-08-16 20:53:15
【问题描述】:
我所拥有的解决方案可能不像使用 Handler 编写的那样优雅,但给了我想要的体验,只要按下按钮,长点击事件就会发生一些 ui 进程并且该进程应该会延迟一点,因为事件流很快,我想用 Kotlin 的协程 API 做类似的体验。
button.setOnLongClickListener {
val handler = Handler(Looper.myLooper()!!)
val runnable: Runnable = object : Runnable {
override fun run() {
handler.removeCallbacks(this)
if (nextButton.isPressed) {
Log.e("Press", "Thread name: ${handler.looper.thread.name} ")
handler.postDelayed(this, 500)
}
}
}
handler.postDelayed(runnable, 0)
true
}
【问题讨论】: