Kotlin协程 SharingStarted

作用:用于定义在 shareIn 和 stateIn 操作符中启动和停止共享协程的策略。

这个函数接口提供了一组内置的策略
1. Eagerly

val Eagerly: SharingStarted

在这种共享模式下,共享立即开始,并且永不停止。即使没有订阅者,共享也会一直保持活跃。

2. Lazily

val Lazily: SharingStarted

在这种共享模式下,共享在第一个订阅者出现时开始,并且永不停止。即使没有订阅者,共享也会一直保持活跃。
3. WhileSubscribed

fun WhileSubscribed(
    stopTimeoutMillis: Long = 0, 
    replayExpirationMillis: Long = Long.MAX_VALUE
): SharingStarted

在这种共享模式下,共享在第一个订阅者出现时开始,而在最后一个订阅者消失时立即停止。可以设置 stopTimeoutMillis 来指定停止的超时时间,以及 replayExpirationMillis 来指定回放缓存的过期时间。许您对流的共享行为进行更灵活的控制,以满足您的特定需求

val sharingStarted = SharingStarted.WhileSubscribed(
    stopTimeoutMillis = 5000,  // 在第一个订阅者出现时开始,当最后一个订阅者消失后,等待 5 秒钟,然后停止共享
    replayExpirationMillis = 60000  // 缓存将在 1 分钟后过期
)

你可能感兴趣的:(Kotlin,协程,kotlin,开发语言,android)