博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AsyncTask的学习
阅读量:6931 次
发布时间:2019-06-27

本文共 956 字,大约阅读时间需要 3 分钟。

具体的用法请看我之前的一篇随笔,。

 

AsyncTask的目标是为你的线程提供管理服务。 AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。

  1) 子类化AsyncTask
  2) 实现AsyncTask中定义的下面一个或几个方法
     onPreExecute(), 该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。
    doInBackground(Params...), 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。
    onProgressUpdate(Progress...),在publishProgress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。
    onPostExecute(Result), 在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread.

为了正确的使用AsyncTask类,以下是几条必须遵守的准则:

  1) Task的实例必须在UI thread中创建
  2) execute方法必须在UI thread中调用
  3) 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法
  4) 该task只能被执行一次,否则多次调用时将会出现异常
      doInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声明的泛型参数列表中指定,第一个为doInBackground接受的参数,第二个为显示进度的参数,第第三个为doInBackground返回和onPostExecute传入的参数。

 

转载地址:http://udmjl.baihongyu.com/

你可能感兴趣的文章
google似乎把ADB输出的回车换行问题改掉了
查看>>
java 读取JPEG图像的Exif信息
查看>>
Golang面试题解析(二)
查看>>
Elasticsearch 2.3.0 安装成服务
查看>>
UIkit 分页组件动态加载简单实现
查看>>
【工具使用系列】关于 MATLAB HDL Coder, 你需要知道的事
查看>>
演讲实录 | 招银云创:容器PaaS正在让开发人员再也看不到IaaS
查看>>
Spring+Mybatis之多数据源配置
查看>>
阿里数据库专家博客
查看>>
jetty插件java.lang.OutOfMemoryError: PermGen space内存溢出
查看>>
使用 Shell 转换 Linux 目录下的所有其他编码文本文件转为UTF-8编码
查看>>
twisted 线程池管理
查看>>
利用shell + python + expect实现类似xshell功能(测试环境:ubuntu)
查看>>
什么是web前端
查看>>
sessionStorage 、localStorage 和 cookie 之间的区别
查看>>
linux 常用流量查看命令
查看>>
Linux常用命令
查看>>
mysql数据库与数据库实例的区别
查看>>
设计模式-单例模式
查看>>
【LeetCode OJ】Climbing Stairs
查看>>