|- AsyncTask内的各个方法调用顺序:
|- 首先,用户调用execute方法,启动AsyncTask 。然后在execute方法中:
|- 首先调用onPreExecute方法,执行初始化操作。
|- 然后从线程池中取出若干个空闲的线程,并使用该线程调用doInBackground方法,执行耗时的操作,如文件下载等。
|- 提示:调用execute方法时设置的参数会被直接传递给doInBackground方法。
|- 当doInBackground方法执行完毕后,onPostExecute方法将被调用。onPostExecute方法的参数就是doInBackground方法的返回值。
|- 若doInBackground方法中途被终止,则同样会调用onPostExecute方法,但是方法的参数却为null 。
|- 若想更新UI控件,则可以在doInBackground方法中调用publishProgress方法向主线程中的Handler发送消息,Handler接到消息后会转调用onProgressUpdate方法来更新UI。
|- 提示:调用publishProgress方法时设置的参数将被传递给onProgressUpdate方法。
在上面的范例中,各个方法的参数、返回值都是Object类型的,这对于严格控制程序有很大负面的影响。但是事实上,AsyncTask类是有泛型的。
(重要:Note)
AsyncTask<Params, Progress, Result> 其中:
|- Params:用于设置execute和doInBackground方法的参数的数据类型。
|- Progress:用于设置onProgressUpdate和publishProgress方法的参数的数据类型。
|- Result:用于设置onPostExecute方法的参数的数据类型和doInBackground方法的返回值类型。

AsyncTask内的各个方法调用顺序的更多相关文章

  1. UIViewController中各方法调用顺序及功能详解

    UIViewController中各方法调用顺序及功能详解 UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, ...

  2. Java父类与子类方法调用顺序

    父类 FatherClass package 父类与子类方法调用顺序; /** * 父类 * @author shundong * */ public class FatherClass { priv ...

  3. Android之Activity界面跳转--生命周期方法调用顺序

    这本是一个很基础的问题,很惭愧,很久没研究这一块了,已经忘得差不多了.前段时间面试,有面试官问过这个问题.虽然觉得没必要记,要用的时候写个Demo,打个Log就清楚了.但是今天顺手写了个Demo,也就 ...

  4. cocos2d-x 2.x版本中,场景切换各方法调用顺序

    假设从A场景切换到B场景,调用各场景方法的顺序为: 如果没有切换效果(transition),则先调用B的init(),再调用A的onExitTransitionStart(),接着调用A的onExi ...

  5. java中构造代码块、方法调用顺序问题

    1. 继承的概念 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...

  6. 转:UIViewController中各方法调用顺序及功能详解

    UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear ...

  7. Java基础--继承方法调用顺序

    最近因为面试的原因,回过头来复习基础的知识,都忘光了,准备买本面试书回来啃. 我先把自己测试的结论总结写出来,以后忘记再来看看 如果b类继承自a类,在main方法中new出b的对象(不带参数),那么他 ...

  8. VC方法调用顺序

    VC1,push VC2  vc2 pop 到vc1  右滑一半,然后取消 vc1 present到vc2  vc2 dismiss到vc1  push和present是不同的.表现在两个vc ...

  9. java实例变量及方法调用顺序

    public class Base { private String name="base"; public Base(){ sayHello(); } void sayHello ...

随机推荐

  1. delphi WebBrowser控件上网页验证码图片识别教程(一)

    步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...

  2. nginx tomcat 动静分离

    所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片.html等静态的文件,tomcat(或weblogic)处理jsp.do等动态文件</span>,从而达到动静页面 ...

  3. HDU 4834 JZP Set(数论+递推)(2014年百度之星程序设计大赛 - 初赛(第二轮))

    Problem Description 一个{1, ..., n}的子集S被称为JZP集,当且仅当对于任意S中的两个数x,y,若(x+y)/2为整数,那么(x+y)/2也属于S.例如,n=3,S={1 ...

  4. 基于RealSense的坐姿检测技术

    计算机的飞速普及,让人们将越来越多的工作放在计算机上去完成,各行各业,尤其是程序开发人员.文字工作者,在计算机上的工作时间越来越长,这种情况下不良的坐姿对颈肩腰椎都会产生很大影响,容易导致多种疾病的发 ...

  5. SAE网站搭建(1)

    用了半天时间,把Django的基本结构同步到SAE上了,里边比较麻烦的地方如下: 1. 数据库的同步; SAE用的是SQL数据库,默认使用下面的用户名.密码等变量(SAE为我们做了很多工作) 首先需要 ...

  6. ios蓝牙开发(一)蓝牙相关基础知识

    蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0 ...

  7. Python开发【内置模块篇】os模块

    1.当前路径及路径下的文件 os.getcwd():查看当前所在路径. >>> import os >>> os.getcwd() 'E:\\test' >& ...

  8. Linux设备树(三 属性)

    三 属性(property) device_type = "memory"就是一个属性,等号前边是属性,后边是值.节点是一个逻辑上相对独立的实体,属性是用来描述节点特性的,根据需要 ...

  9. 搭建私有CA服务器

    1 CA是什么 CA(Certificate Authority)证书颁发机构主要负责证书的颁发.管理以及归档和吊销.证书内包含了拥有证书者的姓名.地址.电子邮件帐号.公钥.证书有效期.发放证书的CA ...

  10. Sublime Text3 配置 NodeJs 开发环境

    题外话:使用visual studio开发NodeJs也是很方便,只需要安装插件即可. 本着对Sublime Text3的喜爱,尤其是最近更新后,界面和功能上感觉更nice了,那就配置一发环境吧! ( ...