我是kotlin的初学者。我尝试创建一个每2秒重复一次的任务。所以我创建了这样的东西。
val handler = Handler()
handler.postDelayed(Runnable {
// TODO - Here is my logic
// Repeat again after 2 seconds
handler.postDelayed(this, 2000)
}, 2000)
但是在postDelayed(this)中,它会给出错误 -需要Runnable!,找到MainActivity
。我甚至尝试过this@Runnable
,但它没有起作用。
但是,当我像这样编写相同的函数时,它可以工作
val handler = Handler()
handler.postDelayed(object : Runnable {
override fun run() {
// TODO - Here is my logic
// Repeat again after 2 seconds
handler.postDelayed(this, 2000)
}
}, 2000)
为什么this
关键字在第一个函数中无法工作,但在第二个函数中它能很好地工作呢?
val runnable = object : Runnable { ... }
。 - Alexey Romanov