AsyncTask 工作原理(上)
来源:互联网 发布:怎么提高记忆力知乎 编辑:程序博客网 时间:2024/06/02 05:40
AsyncTask 是一种轻量级是异步任务类,它可以在线程池中执行后台任何,将执行的进度和最终结果传递给主线程,并在主线程中更新UI。
AsyncTask 是一个抽象类,其构造函数
//Params:传入doInBackground 中的参数类型//Progress: 后台执行进度的类型,传入onProgressUpdate的参数类型//Result: 后台任务执行完成之后,返回的参数类型,传入onPostExecute的参数类型public abstract class AsyncTask<Params, Progress, Result>()
AsyncTask 提供了4个核心方法
protected void onPreExecute() {}protected abstract Result doInBackground(Params... params);protected void onProgressUpdate(Progress... values) {}protected void onPostExecute(Result result) {}
onProExecute():该方法运行在主线程中,在异步任务执行之前,此方法会被调用,该方法一般用于做一些准备工作
doInBackground(Params… params):在线程池中执行,该方法用于执行异步任务。params 表示异步任务传入的参数。在该方法中可以调用
protected final void publishProgress(Progress... values)
方法来跟新异步任务的进度, publishProgress 方法 会调用到 onProgressUpdate方法,另外doInBackground方法执行完成之后,会调用到 onPostExecute方法;
onProgressUpdate(Progress… values): 该方法执行与主线程中,当后台任务的执行进度发生改变时,调用publishProgress方法后,该方法将会被调用。
onPostExecute(Result result):该方法执行与主线程中,用于当雨布任务执行完成之后,即doInbackground执行完成之后,Result 则为doInbackground的返回类型,result 为doInbackground的返回值。
通过上述描述 可以看出 AsyncTask 先执行onProExecute 然后执行 doInbackground 最后执行 onPostExecute;
注:AsyncTask 中还有一个方法 onCancelled()方法 该方法也执行在主线程中,当调用该方法后,则将不会执行 onPostExecute方法
代码示例:
public class DownLoadAsynTask extends AsyncTask<String, Integer, Bitmap> { public DownLoadAsynTask() { } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Bitmap doInBackground(String... params) { return bitmap; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); }
//AsyncTask 调用new ImgAsynTask().execute();
通过上述代码示例,相信各位对AsyncTask中的三个泛型参数以及如何使用AsyncTask了吧
- AsyncTask 工作原理(上)
- AsyncTask 工作原理(下)
- android多线程-AsyncTask之工作原理深入解析(上)
- android多线程-AsyncTask之工作原理深入解析(上)
- AsyncTask工作原理
- AsyncTask工作原理
- AsyncTask的工作原理
- AsyncTask工作原理分析
- AsyncTask工作原理解析
- Android AsyncTask工作原理
- AsyncTask工作原理
- Android AsyncTask 的工作原理
- 理解AsyncTask的工作原理
- 从AsyncTask的源码解析AsyncTask工作原理
- 从源代码理解AsyncTask的工作原理
- 《Android开发艺术探索》 -- AsyncTask 工作原理
- 【android】AsyncTask的使用和工作原理
- Android源码解析AsyncTask的工作原理
- 小白日记6:kali渗透测试之被动信息收集(五)-Recon-ng
- 产品经理做竞品分析的方法论(分享个人笔记)
- 植入百度地图(一)——简单显示地图
- 建议139:事件处理器命名采用组合方式
- Android要写一个界面,把剩下的部分平均分配
- AsyncTask 工作原理(上)
- 简易的UI教程
- 排序算法之归并排序
- 图片大小自适应垂直居中的方法
- 浏览器中唤醒App
- PHP $_SERVER详解
- 职责链模式——大公司病
- mosquitto安装使用
- C++链表随笔