完全掌握Android版kotlin协程,你准备好了吗?

112 阅读4分钟

在这里插入图片描述

随着移动互联网的快速发展,多线程、异步任务成为了移动应用程序中常见的编程模式。而在Android开发中,我们常常会使用线程或者Handler来进行异步任务的处理。然而,使用Kotlin协程,我们可以更简单地处理异步任务,并且能够更方便地进行代码的编写和阅读。本文将带你走进Kotlin协程的世界,让你轻松上手。

一、Kotlin协程简介

Kotlin协程是目前很流行的一款用于异步任务处理的库,都知道它处理异步任务特别好用,但是很少人去探究它背后的原理。还有一点,由于它是用于处理异步任务的,很多人将协程与线程做对比,也有一些人将协程与Rxjava做对比。这篇文章将从最简单的用法开始,层层递进的讲解协成知识点。

二、Kotlin协程的核心概念

1.挂起点(Suspend Point):在Kotlin协程中,挂起点指的是一个可以被挂起和恢复执行的代码位置。在挂起点上,Kotlin协程可以被暂停执行,并将控制权交回给其他线程执行。当其他线程执行完毕后,Kotlin协程可以从挂起点继续执行。

2.协程体(Coroutine Body):协程体是包含Kotlin协程代码的函数。在协程体中,我们可以定义多个挂起点,并且可以在挂起点之间进行跳转。

3.挂起函数(Suspend Function):挂起函数是一种特殊的函数类型,它可以在执行过程中挂起协程的执行,并将控制权交回给其他线程执行。挂起函数可以通过yield关键字来指定挂起点。

4.恢复函数(Resume Function):恢复函数用于恢复挂起的协程的执行。当我们在其他线程中执行完任务后,可以通过调用恢复函数来继续执行挂起的协程。

三、Kotlin协程的使用方式

1.定义协程体

首先,我们需要定义一个包含协程代码的函数。在这个函数中,我们可以定义多个挂起点,并且可以在挂起点之间进行跳转。例如:

fun main(args: Array<String>) = runBlocking {  
    launch {   
        println("Start")   
        delay(2000)   
        println("End")   
    }  
}

在这个例子中,我们使用runBlocking函数来创建一个新的协程,并在其中使用launch函数来启动一个新的协程。在launch函数中,我们定义了一个挂起点,通过调用delay函数来挂起协程的执行2秒钟,然后打印出"End"。

2.使用挂起函数和恢复函数

在Kotlin协程中,挂起函数和恢复函数是相互配合使用的。挂起函数用于挂起协程的执行,并将控制权交回给其他线程执行;而恢复函数则用于恢复挂起的协程的执行。例如:

fun asyncSum(a: Int, b: Int): Int {  
    return withContext(Dispatchers.Default) {  
        delay(1000) // 挂起1秒钟  
        return a + b   
    }  
}

最后

更多的kotlin协程知识可以

关注公众号:Android老皮

目录

在这里插入图片描述

在这里插入图片描述

第一章 Kotlin协程的基础介绍

  • 1.1 协程是什么
  • 1.2 什么是Job 、Deferred 、协程作用域
  • 1.3 Kotlin协程的基础用法

在这里插入图片描述

第二章 kotlin协程的关键知识点初步讲解

  • 2.1 协程调度器
  • 2.2 协程上下文
  • 2.3 协程启动模式
  • 2.4 协程作用域
  • 2.5 挂起函数

在这里插入图片描述

第三章 kotlin协程的异常处理

在这里插入图片描述

第四章 kotlin协程在Android中的基础应用

  • 4.1 Android使用kotlin协程
  • 4.2 在Activity与Framgent中使用协程
  • 4.3 ViewModel中使用协程
  • 4.4 其他环境下使用协程

在这里插入图片描述

第五章 kotlin协程的网络请求封装

  • 5.1 协程的常用环境
  • 5.2 协程在网络请求下的封装及使用
  • 5.3 高阶函数方式
  • 5.4 多状态函数返回值方式
  • 5.5 直接返回值的方式 在这里插入图片描述

第六章 深入kotlin协程原理(一)

  • 6.1 suspend 的花花肠子
  • 6.2 藏在身后的- Continuation
  • 6.3 村里的希望- SuspendLambda

在这里插入图片描述

第七章 深入kotlin协程原理(二)

  • 7.1 协程的那些小秘密
  • 7.2 协程的创建过程
  • 7.3 协程的挂起与恢复
  • 7.4 协程的执行与状态机

在这里插入图片描述

第八章 Kotlin Jetpack 实战

  • 8.1 从一个膜拜大神的 Demo 开始
  • 8.2 Kotlin 写 Gradle 脚本是一种什么体验?
  • 8.3 Kotlin 编程的三重境界
  • 8.4 Kotlin 高阶函数
  • 8.5 Kotlin 泛型
  • 8.6 Kotlin 扩展
  • 8.7 Kotlin 委托

在这里插入图片描述

第九章 Kotlin + 协程 + Retrofit + MVVM优雅的实现网络 请求

  • 9.1 项目配置
  • 9.2 实现思路
  • 9.3 协程实现
  • 9.4 协程 + ViewModel + LiveData实现
  • 9.5 后续优化
  • 9.6 异常处理
  • 9.7 更新Retrofit 2.6.0

在这里插入图片描述