我想每5秒运行一段代码。我在处理程序中遇到了麻烦。 Kotlin如何做到这一点?这是我到目前为止。还要注意,变量Timer_Preview是一个Handler。处理程序每5秒运行一次任务Kotlin
回答
既然你不能引用拉姆达目前在你,你不能引用你当你确定你分配给它的拉姆达定义属性时,这里最好的解决方案是一个object
expression:
val runnableCode = object: Runnable {
override fun run() {
handler.postDelayed(this, 5000)
}
}
假设这个属性不是var
因为你真正想要,而这种自我呼叫正在发生的事情去改变它。
谢谢,这正是我一直在寻找的!很好的 –
我是否正确地假设你可以创建一个默认处理程序(即val处理程序:Handler = Handler()),然后启动它(即handler.post(runnableCode)),它会每隔5秒运行一次你放入运行块(在handler.postDelayed之前...)? –
我相信会有效,是的。 – zsmb13
由于科特林还不允许递归lambda表达式(见KT-10350),您必须使用其他结构,如对象表述为@ zsmb13的答案,还是普通的功能如下
fun StartTimer() {
Timer_Preview.postDelayed(Runnable { runnable() }, 5000)
}
fun runnable() {
//Code here
// Run code again after 5 seconds
Timer_Preview.postDelayed(Runnable { runnable() }, 5000)
}
然而,在您的特定情况下,它看起来像你可以只调用StartTimer()
再重新布防计时器,假设它不会做任何事情:
private val RunnableCode = Runnable {
//Code here
//Run code again after 5 seconds
StartTimer()
}
- 1. 如何在nodejs中每隔5秒运行一次任务
- 2. Cron作业 - 每5秒运行一次
- 3. 每5秒运行一次宏
- 4. 每5秒运行一次jquery动画
- 5. 使用AlarmManager.setRepeating每5秒运行一次服务
- 6. 每30秒运行一次Android服务
- 7. Rufus调度程序:立即运行,每x秒运行一次
- 8. Android每5秒启动一次服务
- 9. Android每隔X秒运行一次任务
- 10. 每5秒执行一次脚本
- 11. 每5秒自动调用一次任务
- 12. 在我的应用程序中每月运行一次任务
- 13. 每2分钟运行一次任务计划程序
- 14. Windows任务调度程序从星期一至星期六每5分钟运行一次任务
- 15. 每2秒启动一次,每5秒启动一次
- 16. 运行任务周期性(每天一次/每周一次)
- 17. 每周运行一次任务,在Heroku上只运行4次
- 18. joomla计划每秒运行的任务
- 19. 每秒执行一次任务,完成后执行另一个任务
- 20. Laravel每5秒运行一次工匠命令
- 21. 如何每5秒钟运行一次shell脚本2分钟?
- 22. 每5秒异步执行一次Android Web服务
- 23. Windows任务处理器每天两次
- 24. Spring Java - 运行进程每天执行一次任务
- 25. 使用AsyncTask和服务检查阈值每5秒运行一次报警
- 26. 在后台运行时每x秒重复执行一次任务
- 27. 异常处理只能在运行程序中运行一次
- 28. 程序每次运行一行
- 29. 每秒运行一次活动
- 30. 每10秒运行一次node.js脚本
你可以传递一个'Callable'你'Handler'和'sendMessageDelayed'递归。 –
请把代码放在问题中,而不是链接到它,因为a)不是每个人都可以从工作中得到imgur和b)链接可能会过期,并且这个问题在将来将没有用处。 – Todd
谢谢你让我知道! –