我想每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
謝謝你讓我知道! –