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

时间:2018-05-29 11:02:53

标签: android kotlin runnable

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

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

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

            },2000)
        }
    }

    postDelayed(runnable,2000)

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

       postDelayed({

        },2000)

2 个答案:

答案 0 :(得分:4)

在Kotlin 1.2+中,您可以为lateinit var定义本地runnable,然后使用使用该变量的Runnable对其进行初始化:

lateinit var runnable: Runnable
runnable = Runnable {
    /* ... */
    postDelayed(runnable,2000)
}

答案 1 :(得分:1)

这样做,

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