使用ktx处理程序扩展定期运行方法

时间:2019-05-23 16:15:18

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

我最近开始使用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)

2 个答案:

答案 0 :(得分:0)

您不能从内部调用lambda。一种技巧是使用函数引用:

.gitignore

答案 1 :(得分:0)

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