kotlin 协程withContext切换线程

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin 协程withContext切换线程相关的知识,希望对你有一定的参考价值。

       GlobalScope.launch(Dispatchers.Main) 
                //切到子线程进行操作
                val repoResponse: Response<FeedBackLists>
                withContext(Dispatchers.IO) 
                    repoResponse = RetrofitClient
                        .instance
                        .getApi()
                        //suspend 挂起的方法必须在携程体内进行调用
                        .getFeedBack(1, 1)
                
                //还是在主线程
                binding.tvText.text = "repoResponse :$repoResponse.data!!.data[0].content"
            

withContext 可以将当前线程从主线程切换到io线程。然后执行完毕再切换回来到ui线程执行操作

这样做的好处就是消除了

代码嵌套

而是写成上下级关系就可以进行协程合作

 withContent也可以嵌套到suspend fun 方法当中

挂起是非阻塞的线程

launch里面的东西就是协程。

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于kotlin 协程withContext切换线程的主要内容,如果未能解决你的问题,请参考以下文章

kotlin协程

kotlin协程

kotlin协程withTimeout在使用withContext获取非阻塞代码时不取消

Kotlin 协程挂起函数 suspend 关键字

Kotlin协程到底是怎么切换线程的?你是否知晓?

Kotlin回顾9.协程思维模型