安卓开发——AsyncTask内的各个方法调用顺序
来源:互联网 发布:淘宝奖牌定做 编辑:程序博客网 时间:2024/06/05 11:59
AsyncTask内的各个方法调用顺序:
一、首先,用户调用execute方法,启动AsyncTask 。
二、然后在execute方法中:
1、首先调用onPreExecute方法,执行初始化操作。
2、然后从线程池中取出若干个空闲的线程,并使用该线程调用doInBackground方法,执行耗时的操作,如文件下载等。提示:调用execute方法时设置的参数会被直接传递给doInBackground方法。
3、当doInBackground方法执行完毕后,onPostExecute方法将被调用。onPostExecute方法的参数就是doInBackground方法的返回值。
4、若doInBackground方法中途被终止,则同样会调用onPostExecute方法,但是方法的参数却为null 。
5、若想更新UI控件,则可以在doInBackground方法中调用publishProgress方法向主线程中的Handler发送消息,Handler接到消息后会转调用onProgressUpdate方法来更新UI。提示:调用publishProgress方法时设置的参数将被传递给onProgressUpdate方法。
在上面的范例中,各个方法的参数、返回值都是Object类型的,这对于严格控制程序有很大负面的影响。但是事实上,AsyncTask类是有泛型的。
注:AsyncTask<Params, Progress, Result> 其中:
1、Params:用于设置execute和doInBackground方法的参数的数据类型。
2、Progress:用于设置onProgressUpdate和publishProgress方法的参数的数据类型。
3、Result:用于设置onPostExecute方法的参数的数据类型和doInBackground方法的返回值类型。
execute(params)--->onPreExecute()------>result doInBackground(params)-------->onPostExecute(result///null) ----->publishProgress(Progress)---->mainUI Handler ---->onProgressUpdate(Progress)
例:子线程更新UI
runOnUiThread(new Runnable() { @Override public void run() { MyToast.show(AtoolsActivity.this, "短信还原成功"); } });
- 安卓开发——AsyncTask内的各个方法调用顺序
- AsyncTask内的各个方法调用顺序:
- AsyncTask内的各个方法调用顺序
- AsyncTask内的各个方法调用顺序
- 安卓开发30:AsyncTask的用法
- AsyncTask<String ,Integer,Integer>类中各个方法的执行先后顺序
- IOS开发>>UIViewController各个方法的加载顺序
- 安卓开发之基于AsyncTask的socket常连接方法。
- 安卓开发中调用系统服务的方法
- 安卓开发之调用服务里的方法
- 安卓—— 详解Android中AsyncTask的使用
- Android中AsyncTask的函数调用顺序
- 安卓开发ndk的编译顺序 和 jni的简单调用
- 安卓多线程——AsyncTask
- UIVIEWCONTROLLER各个方法的加载顺序
- UIVIEWCONTROLLER各个方法的加载顺序
- UIViewController各个方法的加载顺序
- UIVIEWCONTROLLER各个方法的加载顺序
- ios学习--照片框架详解之二 —— PhotoKit 详解(上)
- maven module多模块project
- Android开发平台下多媒体开发系统架构
- [LeetCode][链表]Swap Nodes in Pairs
- 用Java打暴雪星际(3)——探究示例机器人代码
- 安卓开发——AsyncTask内的各个方法调用顺序
- C++ 引用和指针 const与#define #define与内联函数
- 1
- iOS中常用小知识点
- 关于MYSQL的行列转换
- 获取jquery类数组对象的下标
- WebLogic和Tomcat对比
- 三个数排序
- Android下数据库的操作应用(二)