Coroutines 是什么?
协程,我们可以理解为异步,个人感觉在异步方面比 RxJava 更简洁方便。
RxJava 与 Coroutines
感觉Rxjava更多的是属于响应式编程,把很多东西都封装好了,
比如说出错重试,还有就是线程切换,依照这些方面衡量,RxJava更适合开发使用。
RxJava是一个万金油的存在,其庞大的操作符集合,使其异常的灵活
感兴趣的童鞋可以阅读
《Coroutines和Rxjava异步编程对比》
《Coroutines和Rxjava异步编程对比之二》
集成
compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.22.5'
需要确保 kotlin 版本不得小于 1.2.21
buildscript {
ext.kotlin_version = '1.2.21'
}
并配置
repository {
jcenter()
}
延时处理
launch(CommonPool) { // 在一个公共线程池中创建一个协程
delay(1000L) // 非阻塞的延迟一秒(默认单位是毫秒)
var user = AppDatabase.getInstance(this@SplashActivity)
.userDao()
.getUser()
if (user != null) {
val intent = Intent(this@SplashActivity, MainActivity::class.java)
startActivity(intent)
finish()
} else {
val intent = Intent(this@SplashActivity, LoginActivity::class.java)
startActivity(intent)
finish()
}
}
相关链接
Coroutines教程 https://blog.dreamtobe.cn/kotlin-coroutines/
Github 地址 https://github.com/Kotlin/kotlinx.coroutines