zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    软工人日常
    11.5
    11.4
    11.3
    11.2阅读笔记
    11.1阅读笔记
    10.31 异常
    10.30动手动脑
    10.29
    10.28
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/4178013.html
Copyright © 2011-2022 走看看