AsyncTask内的各个方法调用顺序

|- 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方法的返回值类型。

时间: 2024-10-10 07:00:55

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

jquery更改ready方法调用顺序,在ready之后执行Js代码

*/--> jquery更改ready方法调用顺序,在ready之后执行Js代码 Table of Contents 问题描述 在所有的ready方法之后执行上面的方法 重写$.fn.ready方法 查看$.fn.ready的源码定义 修改自己的$.fn.ready 闭包,增加安全性 问题描述 我想要控制Input,回车不提交表单,思路如下: $(function(){ $("form input").on("keypress",function(event)

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

UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear, viewWillLayoutSubviews,viewDidLayoutSubviews,viewWillDisappear, viewDidDisappear方法,按照调用顺序说明如下: 调试日志: 1 2 3 4 5 6 7 8 9 2013-07-14 12:15:49.048 VCTes

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

UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear, viewWillLayoutSubviews,viewDidLayoutSubviews,viewWillDisappear, viewDidDisappear方法,按照调用顺序说明如下: 调试日志: 1 2 3 4 5 6 7 8 9 2013-07-14 12:15:49.048 VCTes

(转)UIViewController中各方法调用顺序及功能详解

目录(?)[-] 1 initWithNibNamebundle 2 loadView 3 viewDidLoad 4 viewWillAppear 5 viewDidAppear 6 viewWillLayoutSubviews 7 viewDidLayoutSubviews 8 viewWillDisappear 9 viewDidDisappear 10 viewWillUnload 11 viewDidUnload UIViewController中loadView, viewDidLo

自定义控件的初次建立的时候方法调用顺序

package com.football.app.view; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; /**  * 

python多重继承的属性和方法调用顺序问题和对迭代器的初步理解

推荐阅读:https://www.cnblogs.com/bigb/p/11650707.html 计算机学习的一个好办法就是自己将代码跑一遍,了解代码的运作顺序和原理(主要弄懂 函数作用,传入参数,返回值) 见代码: class A(object): def __init__(self): print('A') super(A, self).__init__() class B(object): def __init__(self): print('B') super(B, self).__i

UIViewController的生命周期及方法调用顺序

ViewController解析 UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewController来控制的,UIViewController管理UIView的生命周期及资源的加载与释放. UIView与UIWindow共同展示了应用程序的用户界面.可以将UIView理解成画布,UIWindow理解成画框.这两个类的继承关系是这样的: NSObject — UIResponder — UIView — UIWindow  (UIWindow

viewPager的OnPageChangeListener监听器的方法调用顺序

mviewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {     @Override     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {           Log.d("测试代码", "onPageScrolled滑动中" + positi

VC方法调用顺序

VC1,push VC2 ? vc2 pop 到vc1 ? 右滑一半,然后取消 vc1 present到vc2 ? vc2 dismiss到vc1 ? push和present是不同的.表现在两个vc的didappear和diddisapper的顺序上 6. 如何禁止右滑pop界面 self.navigationController.interactivePopGestureRecognizer.enabled = NO;