Android异步消息(二)之AsyncTask

Android异步消息笔记中,简单介绍了异步消息处理机制。不过Android还提供了另外一些好用工具,如AsyncTask。借助AsyncTask,即使对异步消息处理机制不熟悉,也可以容易的从子线程切换到主线程。AsyncTask也是基于异步消息处理机制,只是封装好了而已。

基本用法:

AsyncTask是一个抽象类,需要创建一个子类去继承它,并重写相应的一些方法。

●  一个简单的定义如下( 需指定3个泛型参数 ):

class ExampleTask extends AsyncTask<ParamsType, ProgressType, ResultType>{  类的实体 }

参数1:ParamsType,执行AsyncTask时需要传入的参数,可用于后台任务中使用

参数2:ProgressType,后台任务执行时,如需在界面显示进度,此参数作为进度单位的数据类型,如Integer

参数3:ResultType,后台任务执行完后,如需返回结果,此参数作为返回值的数据类型

●  一般重写的方法如下:

①on PreExecute(): 后台任务开始执行前调用,用于进行一些界面上的初始化操作,比如一个进度对话框

 

ResultType doInBackground( Params...): 这个方法的所有代码在子线程中执行所以不能做UI操作。一般在这处理耗时任务,任务完成可以return返回结果。如果ResultType就是AsyncTask<ParamsType, ProgressType, ResultType>的第三个参数是void就不能return

 

③ onProgressUpdate(ProgressType progress): 当后台任务调用了 publishProgress(progress)时,onProgressUpdate(ProgressType progress)就很快被调用。这个方法,可以进行UI操作,利用参数中数值即可更新相应的界面

 

④  onPostExecute(ResultType result) : 后台任务执行完通过return返回值时(两个条件同时需要),这个方法很快会被调用,return返回的数据作为ResultType result参数传入此方法中,可以利用这些数据做一些UI操作。

●  如果要启动这个任务:new ExampleTask().execute(); 即可

AsyncTask的好处就是,doInBackground()执行一些耗时任务,onProgressUpdate()进行UI操作,onPostExecute(ResultType result)执行收尾工作。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值