zoukankan      html  css  js  c++  java
  • api 翻译之AsyncTask

    AsyncTask


    类的简介:

    AsyncTask可以使UI线程更合理更简单的使用。这个类允许执行后台操作,而且可以在不使用多线程或handlers的情况下给主线程传输数据。

    异步任务 被定义为在后台进行的运算,结果发布到主线程。

    异步任务 三种类型四个步骤所定义,三种类型分别是ParamsProgressResult和四个步骤分别是begindoInBackgroundprocessProgressend

     


    使用方法:

    异步任务必须被继承使用,它的子类至少要覆写方法:doInBackground方法,通常也要覆写另一个方法:onPostExecute(Result)

    上面的代码是其子类异步下载文件的示例。

     

     

    异步任务的三种类型

    异步任务的三种类型的描述如下:

    1.Params:发送给正在执行的任务的参数(参数类型)。

    2.Progress:正在后台运算的时候发布的进度(进度类型)

    3.Result:后台运算的结果(返回值的类型)

     

    异步任务并不非得使用所有这些类型,为了标记不使用的类型,简单的在其位置上填入Void

    比如:上面的代码。

     

     

    四个步骤:

    当一个一步任务执行时,任务的四个步骤如下:

    1.onPreExecute(),在异步执行时立即被UI线程调用,这一步通常用来设置任务,比如在用户界面显示进度条。

    2.doInBackground(Params…),当onPreExecute()方法执行完成时立即被后台线程调用。这一步用来执行耗时间的后台操作。异步任务的参数被传到这一步里。操作的结果必须在这一步被返回并且会被传到最后一步。这一步也可以使用publishProgress(Progress…)来发布一个或者多个进度单位。这些值在onProgressUpdate(Progress…)这一步被发布到UI进程中

    3.onProgressUpdate(Progress…),在调用publishProgress(Progress…)之后被UI线程调用,执行的时间不定。这个方法用来在后台操作仍在执行的时候在用户界面显示不同形式的进度。比如它可以推动进度条进度或者在文本里显示log信息。

    4.onPostExecute(Result…),在后台程序结束后被UI线程调用。后台程序执行的结果以参数的形式传给这一步。

     

     

    线程规则

    为了是这一个类更好的被使用,要遵循下面几个原则:

    1任务实例必须在主线程中创建

    2Execute(Params…)必须被UI线程调用

    3不用手动的调用onPreExecute(),onPostExecute(Result), dolnBackgrcund(Params. . .), onProgressUpdate(Progress.. .)

    4任务只能被执行一次(当尝试执行第二个时会抛出异常)

     

    Le王冬冬 博客分享地址: http://www.cnblogs.com/dongdong230/ 每个人都应做一天攻城狮
  • 相关阅读:
    从零开始入门 K8s| 详解 Pod 及容器设计模式
    从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
    时间和空间的完美统一!阿里云时空数据库正式商业化
    SaaS加速器,到底加速了谁? 剖析阿里云的SaaS战略:企业和ISV不可错过的好文
    来杭州云栖大会,全面了解企业如何实现云上IT治理
    DataV教你如何给可视化应用一键美颜
    Serverless Kubernetes全面升级2.0架构:支持多命名空间、RBAC、CRD、PV/PVC等功能
    基于 APIGateway 打造生产级别的 Knative 服务
    P1434 滑雪
    P1613 跑路
  • 原文地址:https://www.cnblogs.com/dongdong230/p/4183067.html
Copyright © 2011-2022 走看看