标签:
今天,总结一下AsynTask的使用
原理:基于异步消息处理机制
AsyncTask 是一个抽象类,所以如果我们想使用它,
就必须要创建一个子类去继承它。
在继承时我们可以为 AsyncTask 类指定三个泛型参数,
1.Parms
在执行AsynTask时需要传入的参数,可用于在后台任务中使用
2.Process
后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为进度单位
3.Result
当任务执行完毕后,如果需要对结果进行返回,则使用这里指定的泛型作为返回值类型
一个最简单的自定义AsynTask就可以写成如下方式
class DownloadTask extends AsynTask<Void,Integer,Boolean>{
......
}
第一个泛型参数为Void,表示在执行AsynTask的时候不需要传入参数给后台任务
第二个泛型参数为Integer,表示使用整型数据来作为进度显示单位
第三个泛型参数为Boolean,则表示使用布尔数据来反馈执行结果
使用AsynTask的诀窍是
在onPreExecute()方法中进行一些界面上的初始化操作,会在后台任务开始执行之前调用
在 doInBackground()方法中去执行具体的耗时任务,
在 onProgressUpdate()方法中进行 UI 操作,
在 onPostExecute()方法中执行一些任务的收尾工作。
最后,如果想要启动这个任务,只需编写以下代码即可:
new DownloadTask().execute();
标签:
原文地址:http://www.cnblogs.com/cxsy/p/5608334.html