首页 > 移动平台 > 详细

Android源码——AsynTask

时间:2016-08-03 20:04:02      阅读:275      评论:0      收藏:0      [点我收藏+]
AsyncTask<Params, Progress, Result>中三个参数为:
Params         输入数据
Progress       过程数据
Result           结果数据
 
工作队列 LinkedlockingQueue 的特性
     线程从空的LinkedlockingQueue中取任务执行,线程会被阻塞;
     线程向一个满的LinkedlockingQueue中添加任务,同样会被阻塞。
 
onProgressUpdate 和 onPostExecute执行与界面相关的操作。
 
InternalHandler:
case MESSAGE_POST_RESULT:
     result.mTask.finish(result.mData[0]);
 
case MESSAGE_POST_PROGRESS:
     result.mTask.onProgressUpdate(result.mData);
 
case MESSAGE_POST_CANCEL:
     result.mTask.onCancelled();
 
 
异步任务的创建过程:
 
 
执行过程:
调用execute方法
在执行过程中,会调用内部一个Callable对象的成员函数call来执行一个具体工作任务
具体任务的执行在doInBackground中
如果异步任务需要执行与界面相关的操作,需要调用publishProgress,该方法会想想sHandler发送一个 MESSAGE_POST_PROGRESS消息,交给 onProgressUpdate来处理。
FutureTask成员函数done被调用
done首先调用AsynTask.get方法获取当前工作任务的结果数据,并将其封装为 MESSAGE_POST_RESULT消息
AsynTask.finish方法处理 MESSAGE_POST_RESULT消息。
 

Android源码——AsynTask

原文:http://www.cnblogs.com/ithaibo-sit/p/5734109.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!