首页 > 解决方案 > 使用 ktx 处理程序扩展定期运行方法

问题描述

更新:澄清,我正在寻找一个扩展,例如每 1000 毫秒运行一次函数,而无需使用handler.postDelayed两次。

我最近开始使用 android-ktx Kotlin 扩展。而且我遇到了非常巧妙地转换的处理程序扩展

handler.postDelayed(runnable, delayInMillis)

进入

handler.postDelayed(delayInMillis = 200L) {
    // some action
}

我遇到的问题是如何转换以下代码以使用 ktx 扩展。甚至可能吗?

handler.postDelayed(object : Runnable {
    override fun run() {
        doSomething()
        handler.postDelayed(this, 1000)
    }
}, 1000)

标签: androidkotlinkotlin-android-extensionspostdelayedandroid-ktx

解决方案


这是 core.ktx 包的一部分

您需要确保它包含在您的 gradle 文件中

implementation "androidx.core:core-ktx:1.1.0"

或更相关/最新版本

完成后,您可以转换:

handler.postDelayed(object : Runnable {
    override fun run() {
        doSomething()
    }
}, 1000)

handler.postDelayed(delayInMillis = 200L) {
    doSomething()
}


推荐阅读