• 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

  • 相关阅读:
    1061. 判断题(15)
    1031. 查验身份证(15)
    1006. 换个格式输出整数 (15)
    1046. 划拳(15)
    1001. 害死人不偿命的(3n+1)猜想 (15)
    1021. 个位数统计 (15)
    1054. 求平均值 (20)
    写出这个数 (20)
    设计模式之中介者模式
    kill命令
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/4178013.html
Copyright © 2020-2023  润新知