安卓最好的异步任务执行框架:kotlin协程(coroutines)
发布日期:2021-06-29 18:33:24
浏览次数:3
分类:技术文章
本文共 1200 字,大约阅读时间需要 4 分钟。
简要介绍
安卓开发中一个最大的通点,就是异步任务的执行。
常用解决方案主要有如下几种:方案很多,都能用,只有一点不爽,烦。
如果不必异步执行,代码一行行执行,多好。可以要异步执行,立刻就坠入地狱。解决方案
kotlin提出一个新的解决方案:协程(coroutines)。
- 协程简要理解如下:
- 构建于线程之上,官方称之为轻量型线程。
- 每个协程包含特定代码块,协程可以进行调度执行,执行过程可以暂停、恢复。
- 万言不如一行代码
- 引入依赖
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1"implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1"
- 使用样例
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) GlobalScope.launch { doSomething() withContext(Dispatchers.Main) { textView.text = "coroutines完成执行" Toast.makeText(this@MainActivity, "coroutines hooray", Toast.LENGTH_SHORT).show() } } } private fun doSomething() { Thread.sleep(5000) }}
代码简介:
- 异步任务在
GlobalScope.launch
块中 - 要执行异步任务,就将代码放到
GlobalScope.launch
或者GlobalScope. async
(这两种方式返回值不同,本文暂不深入讲解) - 要指定任务执行的线程,就用
withContext
指定,Dispatchers.Main
表示主线程,Dispatchers.IO
表示IO线程。(如果没有特别要求时,一般我们都将耗时任务放到IO线程里,要更新UI时,就用主线程)
和其他方案对比
采用协程后,异步代码写法上基本跟同步代码是一样,都是顺序执行的,不必使用回调。
Demo源代码
附录
安卓开发技术分享:
更多技术总结好文,请关注:「程序园中猿」转载地址:https://cxyxy.blog.csdn.net/article/details/88744941 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月27日 16时29分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Matplotlib学习笔记
2019-04-30
Numpy学习笔记
2019-04-30
Pandas学习笔记
2019-04-30
Hadoop学习笔记:一、认识大数据生态体系
2019-04-30
Hadoop学习笔记:三、初步认识HDFS
2019-04-30
Hadoop学习笔记:四、HDFS高级部分
2019-04-30
Hadoop学习笔记:五、MapReduce
2019-04-30
Hadoop学习笔记:六、资源调度器Yarn
2019-04-30
Hadoop学习笔记:二、Hadoop环境安装配置
2019-04-30
彻底搞懂Python一切皆对象!!!
2019-04-30
【成长之路】本科比赛经验分享
2019-04-30
【成长之路】本科比赛作品设计经验分享
2019-04-30
Qt设置QTextEdit和QLabel的字体颜色
2019-04-30
Qt phonon多媒体框架
2019-04-30
linux下Mplayer安装与设置指南(以及如何加载显示中文字幕)
2019-04-30
Qt多媒体播放phonon
2019-04-30
Mysql group by 详解
2019-04-30
Qt学习笔记
2019-04-30
Qt主题风格设置
2019-04-30
android问题汇总-待解决
2019-04-30