2022-06-21 笔记

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)
        }
}

你可能感兴趣的:(2022-06-21 笔记)