AsyncTask(异步消息处理机制)
来源:互联网 发布:网络投标技术方案模板 编辑:程序博客网 时间:2024/04/19 11:02
原理
在android中有两条原则,第一条是:我们不能再UI Thread中进行耗时的操作 以免阻塞UI Thread
第二条是:不能再UI Thread之外的线程中操纵UI元素
所以当我们需要从网上下载一张图片(耗时操作)并且更新到UI界面(更新到UI中)的时候,这个时候就要用到异步消息处理机制:Handler机制(之前的博客已经详细介绍)请点击 接下来讲解另外一种消息处理机制:AsyncTask机制
AsyncTask允许我们在后台执行一个异步任务,我们可以将耗时操作放在异步任务中执行,并随时将任务执行的结果返回给UI线程来更新UI
用法
AsyncTask是一个抽象类,当我们继承使用它的时候我们需要指明它的三个泛型
AsyncTask <Params, Progress, Result>
- Params: 指定的是我们传递给异步任务执行时的参数的类型
- Progress: 指定的是我们的异步任务在执行的时候将执行的进度返回给UI线程的参数的类型
- Result: 指定的是异步任务执行完后返回给UI线程的结果的类型
4个步骤:当我们执行一个异步任务时,需要按照下面的4个步骤分别执行:
- onPreExecute(): 这个方法是在执行异步任务之前的时候执行,并且是在UI Thread当中执行的,通常我们在这个方法里做一些UI控件的初始化的操作,例如弹出ProgressDialog
- doInBackground(Params... params): 在onPreExecute()方法执行完后,会马上执行这个方法,这个方法就是来处理异步任务的方法,Android操作系统会在后台的线程池当中开启一个worker thread来执行这个方法(即在worker thread当中执行),执行完后将执行结果发送给最后一个 onPostExecute 方法,在这个方法里,我们可以从网络当中获取数据等一些耗时的操作
- onProgressUpdate(Progess... values): 这个方法也是在UI Thread当中执行的,在异步任务执行的时候,有时需要将执行的进度返回给UI界面,例如下载一张网络图片,我们需要时刻显示其下载的进度,就可以使用这个方法来更新进度。这个方法在调用之前,我们需要在 doInBackground 方法中调用一个 publishProgress(Progress) 的方法来将进度时时刻刻传递给 onProgressUpdate 方法来更新
- onPostExecute(Result... result): 当异步任务执行完之后,就会将结果返回给这个方法,这个方法也是在UI Thread当中调用的,我们可以将返回的结果显示在UI控件上
0 0
- AsyncTask(异步消息处理机制)
- AsyncTask异步消息处理机制
- AsyncTask 异步消息处理机制
- 异步消息处理机制-Handler、AsyncTask
- Android AsyncTask异步处理消息机制
- Android笔记----AsyncTask异步消息处理机制
- AsyncTask异步处理机制
- android os;异步消息处理机制:AsyncTask和Handler
- Android异步消息处理机制(3)AsyncTask基本使用
- Android异步消息处理机制(4)AsyncTask源码解析
- Android多线程,异步消息处理机制, Thread, AsyncTask 简单总结
- 安卓开发:AsyncTask异步消息处理机制使用
- 异步消息处理机制及AsyncTask的使用
- 异步消息与AsyncTask机制
- 异步消息处理机制
- 异步消息处理机制
- 异步消息处理机制
- 异步消息处理机制
- 有关GCC内嵌汇编的总结
- Spark Streaming介绍与基本执行过程
- NFS脚本搭建
- Android 线程的正确使用姿势
- Java 类中各成分加载顺序 和 内存中的存放位置
- AsyncTask(异步消息处理机制)
- Git远程操作详解
- Codeforces 246A-Buggy Sorting【模拟】
- S-DES子密钥产生
- 到底什么是过拟合?
- quartz CronExpression表达式
- iOS App被拒原因
- TextView属性大全【转】
- 3.JS中运算符与表达式