Kotlin,Android - 如何在 runnable 中发布相同的 runnable?

Sus*_*ger 4 android runnable kotlin

我想将一个 runnable 发布到一个 runnable 内的视图对象,目前我被困在这里。

 var runnable = Runnable {
        if(numLinesToDraw >= amplititudes.size){

        }
        else
        {
            numLinesToDraw = numLinesToDraw ++
            invalidate()
            postDelayed({

            },2000)
        }
    }

    postDelayed(runnable,2000)
Run Code Online (Sandbox Code Playgroud)

如您所见,postDelayedrunnable 中有一个方法。我想要做的是再次发布相同的 runnable 等等。我应该在这里添加什么?

       postDelayed({

        },2000)
Run Code Online (Sandbox Code Playgroud)

hot*_*key 7

在科特林1.2+,您可以定义一个局部lateinit varrunnable,然后用ititialize它Runnable使用的变量:

lateinit var runnable: Runnable
runnable = Runnable {
    /* ... */
    postDelayed(runnable,2000)
}
Run Code Online (Sandbox Code Playgroud)


Har*_*han 7

这样做,

var myRunnable: Runnable = object : Runnable {
    override fun run() {
        progressHandler.postDelayed(this, 100) // here is self calling
    }
}
Run Code Online (Sandbox Code Playgroud)