本篇解析 example-context-04.kt。学习如何手动控制协程运行的线程。
1. 核心操作符:withContext
withContext 允许你在同一个协程内部切换到不同的调度器执行一段逻辑。
执行流程:
- 在
Ctx1线程启动。 - 调用
withContext(Ctx2),协程挂起,在Ctx2执行业务逻辑。 - 执行完毕后,协程自动恢复到
Ctx1继续运行。
2. 开发者感悟
withContext 是协程中最强大的特性之一。它让异步代码写起来像同步代码一样直观。在 Android 中,它常用于:在主线程协程中,临时切到 IO 线程读个数据库,然后直接拿到返回值切回主线程。