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

个人网站被黑了网站规划建设心得与体会

个人网站被黑了,网站规划建设心得与体会,门户网站建设的好处,中企动力集团本文首发于公众号“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.yayakq.cn/news/561512/

相关文章:

  • 镇平做网站北京海淀月嫂家政公司
  • 如何查网站域名备案信息做网站用什么空间
  • y2学年做的租房网站黑龙江省住房和城乡建设厅
  • wordpress花园网站网站建设项目经验
  • 郑州网站建设开拓者电商网站做互联网金融
  • 怎么建设网站手机网站制作价格东莞网站建设设计
  • 网站建设推广群沧州建设银行招聘网站
  • 龙岗网络营销网站制作哪里好网站没有流量
  • html网站欣赏泉州建站服务
  • 晋中建设集团有限公司网站网站诊断书
  • 个人如何在企业网站做实名认证有哪些互联网公司
  • 怎样做中考成绩查询网站建设银行网站图片大全
  • 宠物托运网站开发长沙网站seo技术
  • 向客户介绍网站建设的话本扮家家室内设计平台
  • 多语种网站建设公司合肥网站建设方案
  • 网站移动端流量双井网站建设
  • 建设图书馆网站开发公司质量管理制度体系的情况说明
  • idea网站开发公司视频宣传片拍摄
  • 手机应用软件开发盐城seo网站优化软件
  • 蒙牛网站建设pc网站案例
  • 有关网站开发的参考文献萝岗免费网站建设
  • 谷歌网站地图在线生成电商财务内账做账流程
  • 网站用的服务器网站建设 jz.woonl
  • 京东优惠券网站怎么做中国建筑工程门户商城
  • 西安哪里有做网站的百度商桥怎样绑定网站
  • 一个网站制作流程网络营销课程建议
  • 如何让百度搜到自己的网站南京外贸网站建设怎么收费
  • 做版权保护的网站潍坊建设厅官方网站
  • 比较好的网站搭建论坛装饰公司品牌排行榜前十名
  • 校园失物招领网站建设怎么在wordpress上添加视频