文章目录
一、流的上下文
1、上下文保存
2、流收集函数原型
3、流发射函数原型
4、代码示例 - 查看流发射和收集的协程
5、代码示例 - 不能在不同协程中执行相同流的发射和收集操作
二、修改流发射的协程上下文...1、Flow#flowOn 函数原型
2、代码示例
一、流的上下文
----
1、上下文保存
Flow 异步流 收集元素 的操作 , 一般是在 协程上下文 中进行的 , 如 : 在协程中调用 Flow...中的代码 , 收集元素操作在协程中执行 , 流构建器 也同样在相同的协程中运行 ;
流收集元素 和 发射元素 在相同的协程上下文中 的 属性 , 称为 上下文保存 ;
2、流收集函数原型
Flow#collect...在流构建器中 , 将代码定义在如下协程中执行 , 使用 Dispatchers.IO 调度器 , 也就是协程在子线程中执行 ;
withContext(Dispatchers.IO){}
在流收集时..., 在主线程中更新 UI , 那么对应 Flow 异步流应该是在 后台线程中 发射元素 , 在主线程中 收集元素 ;
使用 flowOn 操作符 , 可以修改 流发射 的协程上下文 , 不必必须在 流收集