当前位置: 首页 > news >正文

b2c电商网站有哪些优势哪些店铺适合交换友情链接

b2c电商网站有哪些优势,哪些店铺适合交换友情链接,网站建设和维护发票明细,商城网站开发公司排名本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 在Kotlin中,LifecycleScope是Android Jetpack架构组件的一部分,主要用于简化与生命周期相关的协程管理。 它属于android…

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点

在Kotlin中,LifecycleScope是Android Jetpack架构组件的一部分,主要用于简化与生命周期相关的协程管理。
它属于androidx.lifecycle:lifecycle-runtime-ktx库的一部分,通过结合使用 LifecycleOwner 和协程,简化了协程与Android生命周期的整合。

什么是 LifecycleScope?

LifecycleScope 是一个扩展属性,可以在LifecycleOwner(如ActivityFragment)中使用。

public val LifecycleOwner.lifecycleScope: LifecycleCoroutineScopeget() = lifecycle.coroutineScope

在这个范围内启动的协程都会在对应的生命周期被取消,避免内存泄漏和无效操作。例如,当一个 Activity 被销毁时,在 LifecycleScope 内启动的协程会自动取消。

lifecycleScope.launch {// 在 Activity 或 Fragment 的 lifecycleScope 中启动的协程
}

launchWhenCreated和launchWhenResumed 等 API 的区别

这些 API 用于在特定的生命周期状态下启动协程,并且在适当的时候暂停和恢复它们。

1. launchWhenCreated

  • Lifecycle 处于 CREATED 状态及更高状态时启动协程。
  • 如果在 CREATED 状态之前调用,则会挂起,直到生命周期达到 CREATED 状态。
  • 在其他状态下(如ON_STARTON_RESUME)调用时,协程立即开始执行。
  • 取消条件:如果生命周期从 CREATED 状态降到 DESTROYED,协程会被取消。例如,在 Activity 或 Fragment 被销毁时,协程会被取消。
lifecycleScope.launchWhenCreated {// 代码将在生命周期至少处于 CREATED 状态时执行
}

2. launchWhenStarted

  • Lifecycle 处于 STARTED 状态及更高状态时启动协程。
  • 如果在 STARTED 状态之前调用,则会挂起,直到生命周期达到 STARTED 状态。
  • 在其他状态下(如ON_RESUME)调用时,协程立即开始执行。
  • 如果生命周期从 STARTED 状态降到 CREATED,协程会被暂停。
  • 如果生命周期从 CREATED 状态降到 DESTROYED,协程会被取消。例如,在 Activity 或 Fragment 被销毁时,协程会被取消。
lifecycleScope.launchWhenStarted {// 代码将在生命周期至少处于 STARTED 状态时执行
}

3. launchWhenResumed

  • Lifecycle 处于 RESUMED 状态时启动协程。
  • 如果在 RESUMED 状态之前调用,则会挂起,直到生命周期达到 RESUMED 状态。
  • RESUMED 状态下调用时,协程立即开始执行。
  • 如果生命周期从 RESUMED 状态降到 STARTED,协程会被暂停。
  • 如果生命周期从 CREATED 状态降到 DESTROYED,协程会被取消。例如,在 Activity 或 Fragment 被销毁时,协程会被取消。
lifecycleScope.launchWhenResumed {// 代码将在生命周期处于 RESUMED 状态时执行
}
简单总结
  • launchWhenCreated:确保协程在生命周期至少为 CREATED 时执行,只有在生命周期降到 DESTROYED 时才会被取消。
  • launchWhenStarted:确保协程在生命周期至少为 STARTED 才会执行,当降到 CREATED 时暂停,降到 DESTROYED 时取消。
  • launchWhenResumed:确保协程仅在生命周期为 RESUMED 时执行,当降到 STARTED 时暂停,降到 DESTROYED 时取消。
使用 LifecycleScope 避免内存泄漏

使用 LifecycleScope 和相关的 launchWhenCreated、launchWhenResumed API,可以确保协程在组件生命周期的适当时机被启动和取消,从而有效避免内存泄漏。

class ExampleActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_example)// 使用 LifecycleScope 启动协程lifecycleScope.launchWhenResumed {// 假设这个任务需要长时间运行delay(10000)// 更新 UI 或执行一些与 Activity 相关的操作findViewById<TextView>(R.id.textView).text = "任务完成"}}
}
  • LifecycleScope:关联到 ActivityFragment 的生命周期。当 ActivityFragment 被销毁时,所有在 LifecycleScope 中启动的协程都会自动取消。

  • launchWhenResumed: 在 Activity 的生命周期至少达到 RESUMED 状态时协程启动。当 Activity 被销毁(例如屏幕旋转或用户离开),生命周期会先降到 STARTED(如果用户稍后返回该活动),继而完全销毁,这时协程会自动取消,不会保留对 Activity 的引用,从而避免内存泄漏。


欢迎关注我的公众号查看更多精彩文章!

AntDream

http://www.hkea.cn/news/803512/

相关文章:

  • 做调查问卷网挣钱的网站新闻 今天
  • 网站建设工作小组在线建站平台免费建网站
  • 可以发广告的网站湖南seo推广系统
  • 大丰网站建设哪家好成都seo
  • 学校网站建设项目的wbsseo交流qq群
  • 筑梦网站建设西安百度竞价开户
  • 个体营业执照可以做网站搞推广吗推广网站制作
  • 公共交通公司网站建设方案移动慧生活app下载
  • 国内开源代码网站搜了网推广效果怎么样
  • html5 metro风格网站模板今日新闻事件
  • 网站不在首页显示出来做网络推广
  • 上海网站seo公司网页推广平台
  • 网站服务器租用价格表百度怎么发布自己的广告
  • 经纪人做网站技巧搜索引擎入口yandex
  • 教育网站制作哪家服务好全球外贸采购网
  • 响应式网络网站源码百度关键词查询网站
  • 南京网站制作设计公司网络运营团队
  • 阿里巴巴上怎样做自己的网站seo网站优化网站编辑招聘
  • 网站做付费推广都需要问什么网络热词2022
  • 给男票做网站表白的软件产品市场推广计划书
  • 西安网站制作定制怎么制作自己的个人网站
  • wordpress 如何移动端盐城seo优化
  • asp.net 制作网站开发百度竞价排名软件
  • 百度爱采购推广平台天津网络推广seo
  • 福州市闽侯县建设局网站推广引流吸引人的文案
  • wordpress目录 读写权限泰安短视频seo
  • 东莞建设网站流程澎湃新闻
  • 萧县住房和城乡建设局网站seo排名推广工具
  • 企业网站php模板下载百度百科官网首页
  • 做愛視頻网站在线网页制作网站