https://www.jianshu.com/p/02a2512df434
https://mp.weixin.qq.com/s/vIVaSvRqQ9K6icwPzjc6LA
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
lifecycleScope.launch {
lifecycleScope.launchWhenCreated {
}
}
}
LaunchWhenStarted 和 LaunchWhenResumed 等
在挂起操作时 上流仍然活跃。会引起资源浪费, 使用
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED)
viewModel.userMessages.collect { messages ->
listAdapter.submitList(messages)
}
}
// 协程将会在 lifecycle 进入 DESTROYED 后被恢复
}
这个新的协程构建器 (自 lifecycle-runtime-ktx 2.4.0-alpha01 后可用) 恰好能满足我们的需要: 在某个特定的状态满足时启动协程,并且在生命周期所有者退出该状态时停止协程。
作者:谷歌开发者
链接:https://www.jianshu.com/p/02a2512df434
来源:简书
也可使用
lifecycleScope.launch {
viewModel.userMessages
.flowWithLifecycle(lifecycle, State.STARTED)
.collect { messages ->
listAdapter.submitList(messages)
}
}
网友评论