zoukankan      html  css  js  c++  java
  • AsyncTask内的各个方法调用顺序

    |- AsyncTask内的各个方法调用顺序:
    |- 首先,用户调用execute方法,启动AsyncTask 。然后在execute方法中:
    |- 首先调用onPreExecute方法,执行初始化操作。
    |- 然后从线程池中取出若干个空闲的线程,并使用该线程调用doInBackground方法,执行耗时的操作,如文件下载等。
    |- 提示:调用execute方法时设置的参数会被直接传递给doInBackground方法。
    |- 当doInBackground方法执行完毕后,onPostExecute方法将被调用。onPostExecute方法的参数就是doInBackground方法的返回值。
    |- 若doInBackground方法中途被终止,则同样会调用onPostExecute方法,但是方法的参数却为null 。
    |- 若想更新UI控件,则可以在doInBackground方法中调用publishProgress方法向主线程中的Handler发送消息,Handler接到消息后会转调用onProgressUpdate方法来更新UI。
    |- 提示:调用publishProgress方法时设置的参数将被传递给onProgressUpdate方法。
    在上面的范例中,各个方法的参数、返回值都是Object类型的,这对于严格控制程序有很大负面的影响。但是事实上,AsyncTask类是有泛型的。
    (重要:Note)
    AsyncTask<Params, Progress, Result> 其中:
    |- Params:用于设置execute和doInBackground方法的参数的数据类型。
    |- Progress:用于设置onProgressUpdate和publishProgress方法的参数的数据类型。
    |- Result:用于设置onPostExecute方法的参数的数据类型和doInBackground方法的返回值类型。

  • 相关阅读:
    Mariadb/Mysql命令行常用命令
    Apache
    Web网页服务器软件——介绍
    力扣 2021.02.22
    openwrt 广告屏蔽大师 Plus+ 广告屏蔽
    AWX安装
    Command "python setup.py egg_info" failed with error code 1
    《Can you feel my world》--王力宏
    csv文件读入转字典
    每日一题力扣110 平衡二叉树
  • 原文地址:https://www.cnblogs.com/ProtectedDream/p/6244660.html
Copyright © 2011-2022 走看看