java - 将无限期运行的 Runnable 从 java 转换为 kotlin

标签 java android kotlin

我在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/

相关文章:

java 。萨克斯解析器。如何手动中断解析?

android - Recyclerview ViewHolder : onCreateViewHolder , View 绑定(bind)和onBindViewHolder在同一个类中

java - 使用 Android API 发布推文

java - 如何使用 Spring-data-Redis 实现 Redis Multi-Exec

android - 隐藏 SpannableString 网址

kotlin - 无法执行BigInteger的添加

android - 自定义偏好 Android Kotlin

android - 在android中启动 Activity 会打开新 Activity Kotlin的多个实例

java - 在 R 3.6 上为 ubuntu 仿生海狸安装 rJava 时出现 "Unable to run a simple JNI program"错误消息

android - 用于填充 ListView 的 SimpleCursorAdapter