Kotlin协程(3)✔️协程生命周期

协程的声明周期是通过 Job 的几种状态体现的,Job协程有 6 种状态:

  • 新建状态
    新建状态主要是通过 launch 函数创建协程对象,它仅仅是一个空的协程对象。

  • 活动状态
    新建协程调用 start 函数后,它就进入活动状态。launch 函数通过 start 参数判断是否启动协程。处于活动状态的协程会执行协程体。

  • 正在完成状态
    正在完成状态是一个瞬间过渡状态,从活动状态进入到已完成状态时经历的中间状态。

  • 已完成状态
    协程成功执行完协程体,就会进入已完成状态,这是最终状态,说明这个协程已经停止。

  • 正在取消状态
    在活动状态或正在完成状态时,如果调用了 cancel 函数则会进入已取消状态,在此之前要先进入正在取消状态,正在取消状态也是一个瞬间过渡状态。

  • 已取消状态
    在新建状态、活动状态或正在完成状态时,如果调用 cancel 函数最终都会是已取消状态,只是新建状态没有经历正在取消状态,而直接是已取消状态。已取消状态是最终状态,使用这个协程已经停止。

    Job状态

Job 状态可以通过 Job 的 isActiveisCompletedisCancelled 属性判断而知,具体说明如下:

状态 isActive isCompleted isCancelled
新建状态 false false false
活动状态 true false false
正在完成状态 true false false
正在取消状态 false false true
已取消状态 false true true
已完成状态 false true false
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容