【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类
文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/
在Handler的学习系列中,学习了如何handler实现worker线程与主线程(UI线程)之间的通信。这是一种通用的处理方式,因此Android SDK将handler和线程隐藏,抽象出来形成AsyncTask抽象类,方便开发者使用。之前有过一篇很好的博文:Android学习笔记(三二):线程:后台异步任务AsyncTask,详细介绍了AsyncTask的使用方式。
AsyncTask类的参数类型
下面列出AsyncTask类的几个重要方法。AsyncTask的这种参数传递方式,让我想起以前的C编程或者命令行,我们不确定function中带多少个参数,同样也不确定命令会输入多少个参数,可能没有,也可能很多。AsyncTask就采用这种generics方式,实现任意参数数量。
我们将参数类型Params用红色标出。如果我们Params的数据类型是String,那么String… params就是说可以带任意个String对象。Java将之视为数组,长度为params.length,数值通过params[i]来读取。例如对象task.execute("Hello","world","Good morning");,就是带有三个String参数,而task.execute("1","2","3","4","5","6","7");带有七个String的参数,其中params[4]是"5"。
如果Params,Progress,Result的数据类型分别是String array,Integer array和int,则继承了为MyTask<String,Integer,Integer>。如果我们确定不传递任何参数,可以用Void,例如private class MyTask extends AsyncTask<Void, Void, Void> { ... }
public class AsyncTask<Params,Progress, Result>
{
//A client will call this method
AsyncTask<Params, Progress, Result>
execute(Params.... params);
//Do your work here
//Frequently trigger onProgressUpdate()
Result doInBackGround(Params... params);
//Callback: After the work is complete
void onPostExecute(Result result);
//Callback: As the work is progressing
void onProgressUpdate(Progress.... progressValues);
}
下面通过小例子实现来进行详细介绍。
相关链接: 我的Android开发相关文章
【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类的更多相关文章
- 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter
目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...
- 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...
- 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...
- 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期
在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...
- 【转】 Pro Android学习笔记(九六):AsyncTask(5):横竖屏切换问题
目录(?)[-] 横竖屏切换的问题 WeakReference 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flow ...
- 【转】 Pro Android学习笔记(九五):AsyncTask(4):执行情况
目录(?)[-] 两个AsyncTask对象的运行情况 多次执行的异常 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/ ...
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...
- 【转】 Pro Android学习笔记(二一):用户界面和控制(9):Gallery和SimpleAdapter
Gallery画廊式控件,如图所示,但是在API level 16,也即Android 4.1,被deprecated,可以使用HorizontableScroolView和ViewPager.但是后 ...
- 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
相对布局:RelativeLayout RelativeLayout也是非常常用的布局,能够精确对控件的位置进行网格对齐,可以设置在控件与其他控件的相对位置,以及控件在容器中的位置.缺省控件的位置为最 ...
- 【转】Pro Android学习笔记(二四):用户界面和控制(12):Style和Theme
目录(?)[-] 静态格式 代码中设定 Style Theme 静态格式 在res/values中设置静态的Style,在资源中设置静态Style可使用的HTML格式有<i> <u& ...
随机推荐
- Python 模块引入,脚本执行
引入模块 创建一个fibo.py def fib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b a, ...
- virtio,vhost 和vhost-user
随着qemu2.1的发布,可以看到,qemu支持了vhost-user.从介绍可以看出,这是把原来vhost-backend从kernel移到了userspace,这和原来virtio架构有什么区别呢 ...
- ps(笔记)
窗口 工作区 默认窗口(恢复) ctrl + n 点阵图(像素图) 小方格组成的 alt 键 配合 放大缩小 ppi dpi 打印输出. 画布新建 z键 局部放大 右击实际像素操作 f键 全屏 空格键 ...
- 【Python那些事儿之十】range()和xrange()
by Harrison Feng in Python 无论是range()还是xrange()都是Python里的内置函数.这个两个内置函数最常用在for循环中.例如: >>> fo ...
- Vector3函数理解-计算两向量之间的角度
1.已知两个向量dirA,dirB.Vector3 dirA = new Vector3(-1,1,0); Vector3 dirB = new Vector3(-1,1,1);2.使向量处于同一个平 ...
- 分享知识-快乐自己:MYSQL之內链接 左链接 右链接 区别
MYSQL中可以通过内外键链接,将有关系的表中数据合并到一起进行条件筛选: 首先创建两个新表,数据如下: student 表数据: score 表数据: 可以看到students表中stu_id为16 ...
- linux下{}的用法
在touch {a,b}.txt时,同时创建了a.txt,b.txt两个文件 而touch {1..10}.txt,同时创建了10个txt文件,从1.txt到10.txt 在linux通配符中,{n, ...
- SpringBoot下的Dubbo和Zookeeper整合
最近一直在学各种分布式的内容,学到了dubbo分布式服务框架就想写个小demo使用一下,但是由于我要整合在SpringBoot框架中,SpringBoot框架毕竟提倡的是java注解配置,XML文件不 ...
- guava API整理
1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection API Guava Basic Utilities IO API C ...
- 51nod 1270 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270 简单的线性dp,最近狂刷水题真的是...药丸 差值最大得话要么是峰 ...