LifecycleScope

LifecycleScope,顾名思义,具有生命周期的协程。
它是LifecycleOwner生命周期所有者的扩展属性,与LifecycleOwner生命周期绑定

并会在LifecycleOwner生命周期destroyed的时候取消掉。自动取消,不会造成内存泄漏,可以替代MainScope。

LifecycleScope虽然是协程,但属于Lifecycle中的扩展属性。

lifecycleScope默认主线程,可以通过withContext来指定线程


lifecycleScope.launch(Dispatchers.IO){
    // do
}


lifecycleScope.launch {
    whenResumed {
        // do
    }
}


lifecycleScope.launchWhenResumed {
    // do
}

whenResumed和launchWhenResumed执行时机一样,区别在于:

whenResumed 可以有返回结果
launchWhenResumed 返回的是Job对象
共有三个对应生命周期的扩展函数:

whenCreated
whenStarted
whenResumed

你可能感兴趣的:(android,android)