ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

第096篇 协程与生命周期:repeatOnLifecycle 的正确用法

2026/10/7 11:01:14 拓冰建站 浏览量
第096篇 协程与生命周期:repeatOnLifecycle 的正确用法 前面几节把协程与 Flow 的机制讲完了,这一节回到 Android 最实际的落点:协程和组件生命周期怎么对齐。这是初级与高级候选人的分水岭——初级答"用lifecycleScope",高级答"为什么是viewLifecycleOwner而不是Fragment、为什么不能只用lifecycleScope.launch就完事、repeatOnLifecycle到底解决了什么、配置变更重建时协程怎么活下来"。先把结论放在前面:Android 侧有三个生命周期——进程生命周期、Fragment生命周期、Fragment.View生命周期。协程该绑哪个,取决于协程任务用到了什么:只用到Fragment自身(如 ViewModel 数据)绑lifecycleScope;只要碰 View(渲染、控件、动画)就必须绑viewLifecycleOwner.lifecycleScope。这是唯一需要记牢的判据,其余都是从它推出来的。机制拆解lifecycleScope是LifecycleOwner的扩展属性,内部是LifecycleCoroutineScope,它在ON_DESTROY时调用cancel()。关键在于