赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。