本篇解析 example-context-10.kt。探讨如何让协程的生命周期与组件(如 Activity)对齐。
1. 核心概念:手动控制作用域
为了防止内存泄漏,我们必须在 Activity 销毁时停止所有后台任务。
核心步骤:
- 创建作用域:
val mainScope = CoroutineScope(Dispatchers.Main)。 - 启动协程:使用这个作用域发起的
mainScope.launch { ... }。 - 统一取消:在 Activity 销毁时调用
mainScope.cancel()。
2. 开发者感悟
CoroutineScope 是所有协程的“家”。当 Activity 销毁时,我们“拆掉”这个家,里面所有的子协程都会被自动清理。在现代 Android 开发中,推荐使用 lifecycleScope,它已经帮你自动完成了这一过程。