我在java中有一些这样的代码来监控某个文件:
private Handler mHandler = new Handler();
private final Runnable monitor = new Runnable() {
public void run() {
// Do my stuff
mHandler.postDelayed(monitor, 1000); // 1 second
}
};
这是我的 kotlin 代码:
private val mHandler = Handler()
val monitor: Runnable = Runnable {
// do my stuff
mHandler.postDelayed(whatToDoHere, 1000) // 1 second
}
我不明白应该将什么 Runnable
传递给 mHandler.postDelayed
。什么是正确的解决方案?另一个有趣的事情是,当我输入这段代码时,kotlin 到 java 的转换器会卡住。
最佳答案
Lambda 表达式没有 this
,但对象表达式(匿名类)有。
object : Runnable {
override fun run() {
handler.postDelayed(this, 1000)
}
}
关于java - 将无限期运行的 Runnable 从 java 转换为 kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789492/