等待超时输入的协同程序

时间:2019-10-28 15:41:07

标签: kotlin jvm coroutine kotlin-coroutines

我是协程的新手,我试图了解是否/如何利用它们来执行以下操作:

  1. 开始监听事件(例如键盘输入)
  2. 如果事件到来,对此做出反应(做点事情)
  3. 如果n秒内没有事件到达,请执行其他操作

我当时想我可能需要将超时本身作为事件。但是我很难把头放在这东西上。一个执行上述操作的简单示例将非常有启发性。

1 个答案:

答案 0 :(得分:0)

您可以使用Kotlin' own timeout functionality

val result = withTimeoutOrNull(timeoutInMillis) {
    var event = getKeybouardEvent()
    while(event == null) {
        event = getKeybouardEvent()
     }
    return event
}
if(result == null) doThis() else doThat()