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/ 每个人都应做一天攻城狮
  • 相关阅读:
    idea 团队成员修改工程后push推送
    clone克隆远程库工程到本地
    idea本地工程项目push推送到远程库
    Android中使用ViewGroup.removeViews()时出现NullPointException解决方案
    Android项目的targetSDK>=23,在低于Android6.0的部分测试机(类似华为)上运行时出现的系统权限问题
    C#-Xamarin的Android项目开发(三)——发布、部署、打包
    defineProperty 和Proxy双向绑定演示,你还不知道么?
    2020想学习JAVA的同学看过来,最基础的编程CRUD你会了没?
    三面拿杭州研究院50offer:面对这些问题,你都能做到嘛??
    ROS 机器人技术
  • 原文地址:https://www.cnblogs.com/dongdong230/p/4183067.html
Copyright © 2011-2022 走看看