Kotlin & Coroutines 延时处理事件

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

你可能感兴趣的:(Kotlin & Coroutines 延时处理事件)