美文网首页
Kotlin笔记(65) — 异步线程的实现:doAsync 和

Kotlin笔记(65) — 异步线程的实现:doAsync 和

作者: 奔跑的佩恩 | 来源:发表于2021-03-01 08:40 被阅读0次

前言

Android开发过程中,我们经常会遇到一种情景,那就是需要在一个线程中去执行耗时操作,如网络请求,文件读写等,然后需要通知主线程去更新相应的 ui。当然,在开发过程中,我们也可以有多种方式去实现这样的场景。
Java语言中,我们实现这个功能的相对简单的方式是利用AsyncTask,大家若对AsyncTask想有一个进一步了解的话,可参考
AsyncTask使用详解

今天就让我们来学习下,kotlin中如何简洁的实现耗时操作在子线程,然后又能方面通知主线程更新ui的知识吧。

今天涉及知识:

  1. AsyncTask 劣势
  2. anko 库依赖
  3. doAsync 的使用
  4. doAsyncResult 的使用

先来波效果图


效果图.gif

一. AsyncTask 劣势

AsyncTask详细使用如下:
AsyncTask使用详解
其劣势在于AsyncTask的方法周期太多,导致使用起来代码量太大,十分臃肿。于是kotlinanko库的协助下,产生了更加优化的方案:doAsyncdoAsyncResult

二.anko 库依赖

app_modulebuild.gradle中添加如下依赖:

dependencies {
    //anko库关于界面跳转简化的依赖 
    implementation 'org.jetbrains.anko:anko-commons:0.10.8'

    //其他代码省略
    //......
}

为了方便依赖的统一管理,我们也可以在project对应的build.gradle中声明版本常量,类似如下:

buildscript {
    //声明anko库版本常量
    ext.anko_version='0.10.8'
    
    //其他代码省略
    //......
}

anko库的最新版本可查看anko官网
接着在app_modulebuild.gradle中添加依赖,类似如下:

dependencies {
    //anko依赖 
    implementation "org.jetbrains.anko:anko:$anko_version"

    //其他代码省略
    //......
}

需要注意的是,此时库依赖添加时必须用双引号,而不能用单引号

三. doAsync 的使用

相关文章

  • Kotlin笔记(65) — 异步线程的实现:doAsync 和

    前言 在Android开发过程中,我们经常会遇到一种情景,那就是需要在一个线程中去执行耗时操作,如网络请求,文件读...

  • Kotlin协程基础篇

    什么是协程 kotlin中的线程框架,是对线程的上层封装,可同步代码实现异步操作。 什么时候用 1.切换线程或者指...

  • 显式使用线程实现异步编程

    显式使用线程实现异步编程 摘要 本章主要讨论如何显式的使用线程实现异步编程,这其中包含如何显式使用线程实现异步编程...

  • kotlin Coroutine原理

    Coroutine协程是kotlin实现的一种异步执行逻辑的方式,相对与传统的线程,协程更加简洁,高效,占用资源少...

  • iOS 多线程基础

    转自:iOS 多线程基础 - 简书 多线程同步和异步的区别?IOS中如何实现多线程的同步? 异步:可以同时执行多条...

  • 对JS异步编程的探究

    在探究“异步“的时候,我们总会联想到多线程实现异步,那么为什么JavaScript非要弄成单线程,还要实现异步呢?...

  • js的单线程和异步

    js的单线程和异步 js是一直是单线程的,浏览器才是实现异步的那个家伙

  • Kotlin—Coroutine(协程)的基本使用

    Kotlin—Coroutine(协程)的基本使用 什么是协程 在java中异步都会使用到线程,在kotlin中引...

  • iOS 多线程

    GCD NSOperation(NSNetWorking和图片异步下载) NSThread (常驻线程的实现) 多...

  • [C# 线程处理系列]专题二:线程池中的工作者线程

    目录: 一、上节补充 二、CLR线程池基础 三、通过线程池的工作者线程实现异步 四、使用委托实现异步 五、任务 一...

网友评论

      本文标题:Kotlin笔记(65) — 异步线程的实现:doAsync 和

      本文链接:https://www.haomeiwen.com/subject/wcusfltx.html