UI 协程指南包含有关如何管理 UI 协程生命周期的部分。它解释了我们应该创建一个顶级Job
实例并将复合协程上下文传递给contextJob + UI
我们启动的所有协程:
launch(contextJob + UI, block = block)
在我的项目中实现此模式时,我很自然地改为使用contextJob
父级:
launch(UI, parent = contextJob, block = block)
我还没有测试过行为上的差异,但我对这两个选项之间的语义差异感兴趣。它们看起来与我非常相似,但我更喜欢使用它,parent = contextJob
因为它的作用更明显。具体来说,我注意到这parent
是允许的null
,但如果我使用+
,我可能不得不将其NonCancellable
用作空对象。
contextJob
用作or的parent
参数有什么问题吗?launch
actor