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

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

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

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

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

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

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

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

    Kotlin协程(3)✔️协程生命周期_第1张图片
    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

你可能感兴趣的:(Kotlin协程(3)✔️协程生命周期)