Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 协同程序处理程序样行为_Android_Kotlin_Kotlinx.coroutines - Fatal编程技术网

Android 协同程序处理程序样行为

Android 协同程序处理程序样行为,android,kotlin,kotlinx.coroutines,Android,Kotlin,Kotlinx.coroutines,在我的应用程序的一部分中,我将runnable发布到一个处理程序,然后run()中的代码执行并使用postDelayed()将相同的runnable发布到处理程序。这会创建类似于循环的东西。这种行为可以通过协同程序实现吗?我试着使用这个频道,但没能让它工作 这种行为可以通过协同程序实现吗 是的,而且以一种几乎令人尴尬的直截了当的方式: launch(UI) { while (!done()) { // loop body delay(loopDelayMi

在我的应用程序的一部分中,我将runnable发布到一个处理程序,然后
run()
中的代码执行并使用
postDelayed()
将相同的runnable发布到处理程序。这会创建类似于循环的东西。这种行为可以通过协同程序实现吗?我试着使用这个频道,但没能让它工作

这种行为可以通过协同程序实现吗

是的,而且以一种几乎令人尴尬的直截了当的方式:

launch(UI) {
    while (!done()) {
        // loop body
        delay(loopDelayMillis)
    }
}

谢谢,当一条或多条消息具有这种循环行为时,有没有一种方法可以处理多条消息?是的,所有的循环都将在UI线程上“并发”运行,即它们各自的迭代将是交错的<当然,code>delay()是一种挂起而不是阻塞方法。使用actor不是可以实现这一点吗?我想向它发送“命令”,其中包含一个when分支来决定每个命令的作用。演员本身会在一个分支中(只有一个命令具有这种期望的行为)发送相同的命令,但会延迟。我不太理解你的描述,我对Kotlin演员的经验也少得多。我的答案与你的问题有关。无论如何,谢谢你,如果我发布一些示例代码会有帮助吗?