android Jetpack组成:协程示波器什么时候离开合成?

nx7onnlm  于 2023-01-11  发布在  Android
关注(0)|答案(1)|浏览(87)

从官方文件来看:"rememberCoroutineScope是一个可组合函数,它返回绑定到调用它的组合点的CoroutineScope。当调用离开组合时,将取消作用域。"
全文请见此处:文件

    • 什么是"离开组合"?**

有人能提供一个具体的例子吗?目前无法想象粗体句子是什么意思。

nc1teljy

nc1teljy1#

假设UI中有一个按钮,单击该按钮时,您将使用协程执行一些后台任务。

@Composable
fun ButtonComposable() {
    val scope = rememberCoroutineScope()
    Button(onClick = {
        scope.launch {
            // Background task
        }
    })
}

在上面的代码中,rememberCoroutineScope()函数创建了一个与组合(ButtonComposable)的生命周期绑定的CoroutineScope,或者简单地说,CoroutineScope作用域将一直处于活动状态,直到在UI中使用ButtonComposable或ButtonComposable没有更改为止。
为了进一步解释,rememberCoroutineScope()函数创建的CoroutineScope(scope)可通过以下情况被终止/取消

  • 如果从UI中删除按钮(ButtonComposable)。
  • 如果按钮的输入值改变-在这种情况下按钮不会从UI中删除,但是如果按钮的值改变,如文本,颜色或任何其他因素,则需要重新构建组合,这会杀死CoroutineScope(作用域)

相关问题