android复习-AnsyTask

AnsyTask是一种类似Thread+Hander机制的处理耗时操作的类,

通过在UI线程中excute()启动操作,

在AnsyTask中

doInBackground()中处理耗时操作(运行在自线程中,处理耗时操作),可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现 ;

onPreExecute()方法中做一些准备工作,如在界面上显示一个进度条(此方法运行在UI主线程中);

onProgressUpdate(Progress...),在publishProgress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。 
onPostExecute(Result), 在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread,处理耗时操作完成后的操作. 

其实AnsyTask内部是通过线程池+Handler机制实现的,将UI主线程的逻辑通过Handler的sendMessage方法发送给UI主线程的HandlerMessage()方法,在这里有使用时对应的onPreExecute()和onPostExecute(Result),onProgressUpdate(Progress...)方法,子线程中有doInBackground()的方法。其实真正用AnsyTask很少,大多数情况下会通过线程池+Handler进行封装去实现异步的逻辑操作。

部分对应源码的分析:

http://www.cnblogs.com/foreal/archive/2012/05/13/2498505.html

 

posted @ 2014-12-22 13:38  西北野狼  阅读(838)  评论(0编辑  收藏  举报