【问题标题】:Run a method periodically using ktx handler extensions使用 ktx 处理程序扩展定期运行方法
【发布时间】:2019-05-23 16:15:18
【问题描述】:

更新:澄清一下,我正在寻找一个扩展,例如每 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)

【问题讨论】:

    标签: android kotlin kotlin-android-extensions postdelayed android-ktx


    【解决方案1】:

    这是 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()
    }
    
    

    【讨论】:

    • 感谢您的回答,但我想要实现的是例如每 1000 毫秒执行一次任务。您提供的解决方案只会运行一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多