事件原由: 很多耗时的资源在安卓客户端加载时,必须要开启一个新的线程去操作维护,而如果直接在主线程中加载的话,客户端会直接报出异常,导致程序不能正常使用,而子线程无法直接更新UI,因此客户端提供了   Handler  去更新UI,但如果子线程比较多,也容易导致客户端的异常,因此这里又提出了 AsyncTask 异步任务的说法。 简单了解一下 AsyncTask: 类: Android.os.AsyncTask android的类AsyncTask对线程间通讯进行了包装,提供了简易的编程方式来使后台线程和UI线程进行通讯: 后台线程执行异步任务,并把操作结果通知UI线程。

* AsyncTask是抽象类.AsyncTask定义了三种泛型类型 Params,Progress和Result。
* Params 启动任务执行的输入参数,比如HTTP请求的URL。
* Progress 后台任务执行的百分比。
* Result 后台执行任务最终返回的结果,比如String,Integer等。
* AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,开发者需要实现这些方法。
* 1) 继承AsyncTask
* 2) 实现AsyncTask中定义的下面一个或几个方法
* onPreExecute(), 该方法将在执行实际的后台操作前被UI 线程调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条,或者一些控件的实例化,这个方法可以不用实现。
* doInBackground(Params...), 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台处理工作。可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。
* onProgressUpdate(Progress...),在publishProgress方法被调用后,UI 线程将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。
* onPostExecute(Result), 在doInBackground 执行完成后,onPostExecute 方法将被UI 线程调用,后台的计算结果将通过该方法传递到UI 线程,并且在界面上展示给用户.
* onCancelled(),在用户取消线程操作的时候调用。在主线程中调用onCancelled()的时候调用。

为了正确的使用AsyncTask类,以下是几条必须遵守的准则: 1) Task的实例必须在UI 线程中创建 2) execute方法必须在UI 线程中调用 3) 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法,需要在UI线程中实例化这个task来调用。 4) 该task只能被执行一次,否则多次调用时将会出现异常 doInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声明的泛型参数列表中指定,第一个为doInBackground接受的参数,第二个为显示进度的参数,第三个为doInBackground返回和onPostExecute传入的参数。 关于 AsyncTask 任务的实例实现可在  Android中的AsyncTask异步任务的简单实例 一文中查看阅读

Android中的AsyncTask异步任务的简单介绍相关推荐

  1. Android中的AsyncTask异步任务的简单实例

    在  Android中的AsyncTask异步任务的简单介绍 一文中,已经对 安卓 异步任务操作做了简单的介绍,这里,直接将上文中的异步任务做了一个实例,实现异步操作更新UI线程,相比开启子线程更新来 ...

  2. Android中的AsyncTask异步加载图片

    AsyncTask简介: AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦. 阅读 AsyncTask的源码可知,AsyncTa ...

  3. 【Android 异步操作】AsyncTask 异步任务 ( AsyncTask 异步任务执行方法 execute 方法相关源码解析 )

    文章目录 一.AsyncTask 异步任务执行方法 execute() 引入 二.AsyncTask 异步任务执行方法 execute() 三.sDefaultExecutor 线程池解析 四.exe ...

  4. 一起Talk Android吧(第一百八十六回:Android中的AsyncTask机制五)

    各位看官们大家好,上一回中咱们说的是Android中AsyncTask机制的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,我们在前面章回中通过具体的 ...

  5. 【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )

    文章目录 一.使用 Flow 异步流持续获取不同返回值 二.Flow 异步流获取返回值方式与其它方式对比 三.在 Android 中 使用 Flow 异步流下载文件 一.使用 Flow 异步流持续获取 ...

  6. HTTP请求方式中8种请求方法(简单介绍)

    HTTP请求方式中8种请求方法(简单介绍) 简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动 ...

  7. Android中使用AsyncTask实现文件下载以及进度更新提示

    Android提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单.相对Handler来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和 ...

  8. 【Android 异步操作】AsyncTask 异步任务 ( FutureTask 模拟 AsyncTask 执行过程 | AsyncTask 执行过程回顾 | FutureTask 分析 )

    文章目录 一.FutureTask 使用流程 二.FutureTask 模拟 AsyncTask 执行过程 三.AsyncTask 执行过程回顾 四.FutureTask 分析 一.FutureTas ...

  9. 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )

    文章目录 一.AsyncTask 参数简介 二.AsyncTask 方法简介 三.AsyncTask 基本用法 四.AsyncTask 构造函数源码解析 五.AsyncTask 构造函数相关源码注释 ...

最新文章

  1. 超1500人报名参加的公开课,了解一下
  2. java 获取第一帧_java获取视频的第一帧
  3. [CMake] 配置 install 和 uninstall
  4. SQL SERVER 数据库概括
  5. idea oracle 工具,IntelliJ IDEA的数据库管理工具实在太方便了
  6. Python图书馆管理系统
  7. iTEXT将html文档转PDF,spire.doc包html转word(包括样式修改和添加图片/页码等设置)
  8. php phalcon 中文手册,基础教程 · Phalcon 3.4中文手册 · 看云
  9. 实现一个简单的Java类:长方形与梯形的面积计算
  10. 四、项目计划(华为项目管理法-孙科炎读书摘要)
  11. 天兔lepus部署文档
  12. (转)DCB文件格式解析
  13. 60佳灵感来自大自然的网页设计作品欣赏
  14. 【ubuntu】搭建lamp架构
  15. 概率图模型概率模型 及其应用
  16. 三相功率测量,两表法和三表法区别
  17. 怎么显示隐藏的文件类型的后缀名
  18. 怎样编写大智慧指标公式
  19. caffe模型训练与使用(windows平台)
  20. STM32Cube工程转为Keil工程的方法介绍

热门文章

  1. 信号与系统 计算机,《信号与系统》计算机练习——利用MATLAB
  2. c语言 生成一维条形码,C# BarcodeLib。dll 生成一维码的问题
  3. python拷贝是什么知识点_地址对象python 列表拷贝知识点 地址对象
  4. xstream解析xml字符串和生成对象
  5. AREngine概述AREngine开发教程
  6. 《编译原理》课程标准
  7. java用户里获取部门id_javaWeb开发,根据部门ID查询该部门和下属所有部门的ID集合...
  8. python中的多线程----以2个线程卖票为例
  9. 频率概率与贝叶斯概率
  10. 知乎容器化构建系统设计和实践