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

问题描述 投票:1回答:2

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

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

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

            },2000)
        }
    }

    postDelayed(runnable,2000)

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

       postDelayed({

        },2000)
android kotlin runnable
2个回答
4
投票

在Kotlin 1.2+中,你可以为lateinit var定义一个局部runnable,然后用一个使用变量的Runnable对它进行ititialize:

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

1
投票

这样做,

var myRunnable: Runnable = object : Runnable {
    override fun run() {
        progressHandler.postDelayed(this, 100) // here is self calling
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.