文章 2022-05-11 来自:开发者社区

[译] 关于 Kotlin Coroutines, 你可能会犯的 7 个错误

1. 在使用协程时实例化一个新的 Job 实例有时候你会需要一个 job 来对协程进行一些操作,例如,稍后取消。另外由于协程构建器 launch{} 和 async{} 都需要 job 作为入参,你可能会想到创建一个新的 job 实例作为参数来使用。这样的话,你就拥有了一个 job 引用,稍后你可以调用它的 .cancel()...

[译] 关于 Kotlin Coroutines, 你可能会犯的 7 个错误
文章 2022-05-11 来自:开发者社区

Kotlin Coroutines Flow 系列(五) 其他的操作符

八. Flow 其他的操作符8.1 Transform operatorstransform在使用 transform 操作符时,可以任意多次调用 emit ,这是 transform 跟 map 最大的区别:fun main() = runBlocking { (1..5).asFlow() .transform { ...

文章 2022-05-11 来自:开发者社区

Kotlin Coroutines Flow 系列(四) 线程操作

七. Flow 线程操作7.1 更为简化的线程切换相对于 RxJava 多线程的学习曲线,Flow 对线程的切换友好地多。在之前的 Kotlin Coroutines Flow 系列(一) Flow 基本使用 一文中曾经介绍过 Flow 的切换线程,以及 flowOn 操作符。Flow 只需使用 flowOn 操作符,而不必像 RxJava 需要去深入理...

文章 2022-05-11 来自:开发者社区

Kotlin Coroutines Flow 系列(三) 异常处理

五. Flow 异常处理Flow 可以使用传统的 try...catch 来捕获异常:fun main() = runBlocking { flow { emit(1) try { throw RuntimeException() } catch (e: Exception) { ...

文章 2022-05-11 来自:开发者社区

Kotlin Coroutines Flow 系列(二) Flow VS RxJava2

三. Flow VS Sequences每一个 Flow 其内部是按照顺序执行的,这一点跟 Sequences 很类似。Flow 跟 Sequences 之间的区别是 Flow 不会阻塞主线程的运行,而 Sequences 会阻塞主线程的运行。使用 flow:fun main() = runBlocking { launch { ...

Kotlin Coroutines Flow 系列(二) Flow VS RxJava2
文章 2022-05-11 来自:开发者社区

Kotlin Coroutines Flow 系列(一) Flow 基本使用

一. Kotlin Flow 介绍Flow 库是在 Kotlin Coroutines 1.3.2 发布之后新增的库。官方文档给予了一句话简单的介绍:Flow — cold asynchronous stream with flow builder and comprehensive operator set (filter, map, etc);Flow 从文档的介绍来看&#x...

Kotlin Coroutines Flow 系列(一) Flow 基本使用
文章 2022-05-11 来自:开发者社区

Android 开发中 Kotlin Coroutines 如何优雅地处理异常

一. 尽量少用 GlobalScopeGlobalScope 是 CoroutineScope 的实现类。我们以前使用过的 launch、async 函数都是 CoroutineScope 的扩展函数。GlobalScope 没有绑定任何 Job 对象,它用于构建最顶层的协程。这些协程的生命周期会跟随着 Application。在 GlobalScope 中创建的 Corouti...

文章 2022-05-11 来自:开发者社区

AAC 的 Lifecycle 结合 Kotlin Coroutines 进行使用

一. Lifecycle目前,AAC(Android Architecture Components简称) 已经是 Android Jetpack 的一部分。Lifecycle 是 AAC 其中的一个组件,Lifecycle 能够管理 Activity 和 Fragment 的生命周期。Lifecycle 可以构建感知生命周期的组件 —— 这些组件根据 Activi...

文章 2022-05-11 来自:开发者社区

Kotlin Coroutines 笔记 (二)

协程虽然是微线程,但是并不会和某一个特定的线程绑定,它可以在A线程中执行,并经过某一个时刻的挂起(suspend),等下次调度到恢复执行的时候,很可能会在B线程中执行。一. withContext与 launch、async、runBlocking 类似 withContext 也属于 Coroutine builders。不...

Kotlin Coroutines 笔记 (二)
文章 2022-05-11 来自:开发者社区

Kotlin Coroutines 笔记 (一)

一. 协程Kotlin 在1.1版本之后引入了协程的概念,目前它还是一个试验的API。在操作系统中,我们知道进程和线程的概念以及区别。而协程相比于线程更加轻量级,协程又称微线程。协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,...

Kotlin Coroutines 笔记 (一)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

微服务

构建可靠、高效、易扩展的技术基石

+关注