kotlin-协成同步

先阐述需求,我需要在退出APP之前进行sp存储操作,由于sp存储耗时,如果sp数据过大,则会造成sp还未存储成功,APP就已经退出,这显然不符合需求

解决方案一、
        sp存储是有返回值的,可以查看源码,此时可以等待有返回值后再退出
此方案有一定局限性,很多项目sp都进行了封装,修改不易,此时可以讲代码进行同步操作,等待执行完成sp后再退出,即为方案二、

1.首先新增依赖
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0'//lifecycleScope implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'//viewModelScope

编辑我的demo

可以看到此时的执行顺序,通过 join方法阻塞代码,等待协成代码执行完后再执行后面的

再进行代码优化,可以这样

fun testLaunch(){
        runBlocking {
            val job = GlobalScope.launch {
                SpUtils.setLogin(false)
            }
            job.join()
            exitApp()
        }
    }

最终可实现 sp存储成功后再退出APP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值