本篇解析 example-context-06.kt。探讨协程如何建立和断开层级联系。
1. 默认继承
在同一个作用域启动的子协程,默认会继承父协程的 Job。
2. 独立运行:launch(Job())
如果在启动子协程时传入了一个新的 Job() 对象,这个子协程就会脱离原来的家族体系,成为一个独立的根协程。
- 特性:当父协程被取消时,这个独立的子协程不会被取消。
3. 开发者感悟
这种机制提供了极大的灵活性。如果你需要启动一个生命周期不随当前 Activity 结束而结束的任务(例如一个全局的同步服务),你可以使用这种方式来断开父子关联。