首页 > 解决方案 > Handler() 已弃用

问题描述

我正在尝试使用Kotlin & Coroutines在后台每秒更新一个搜索栏,但它说 Handler() 已被弃用,将它与 looper 一起使用,我很困惑如何使用handlerlooperkotlin 协程

我试图让它工作的代码

val myHandler: Handler = Handler()
myHandler.postAtTime(asyncSeekBar(), 1000)

此处显示 Handler() 已弃用

asyncSeekBar()

private fun asyncsSeekBar() {
        CoroutineScope(Default).launch {
            updateSeekBar()
        }
    }

但 asyncSeekBar 应该是 Runnable 因此显示和错误

类型不匹配。必需:可运行找到:单位

如果有其他更简单的方法,请建议

标签: androidandroid-studiokotlin

解决方案


您可以使用LifecycleScope它每秒运行一次:

lifecycleScope.launch {
    while (true) {
        delay(1000)
        updateSeekBar()
    }
}

推荐阅读