AsyncTask

类的简介:

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

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

异步任务
被三种类型和四个步骤所定义,三种类型分别是Params,Progress,Result和四个步骤分别是begin,doInBackground,processProgress和end。

使用方法:

异步任务必须被继承使用,它的子类至少要覆写方法: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任务只能被执行一次(当尝试执行第二个时会抛出异常)

api 翻译之AsyncTask的更多相关文章

  1. WebSettings 文档 API 翻译 常用设置

    . setDefaultFontSize(int size)  Sets the default font size. The default is 16. setDefaultTextEncodin ...

  2. python使用百度api翻译中英文

    python使用百度api翻译中英文 写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于 ...

  3. C# 有道API翻译 查询单词详细信息

    原文:C# 有道API翻译 查询单词详细信息 有道云官方文档 有道云翻译API简介:http://ai.youdao.com/docs/doc-trans-api.s#p01 有道云C#Demo : ...

  4. Monkey Android API 翻译

      此篇笔记,记录了API中,对monkey用法的说明,基于Android Studio 2.2.3. Monkey是一个运行在Android模拟器或者Android设备上的程序,通过使用monkey ...

  5. 【Android Api 翻译3】android api 完整翻译之Application Fundamentals (学习android必须知道的)

    Android应用程序是用Java编程语言编写的.Android SDK工具把应用程序的代码.数据和资源文件一起编译到一个Android程序包中(这个程序包是以.apk为后缀的归档文件),一个Andr ...

  6. Win32 API翻译

    这是从MSDN里面的Win32 SDK API函数.结构.通知.消息等等超过3000个.其中一半是整理自别人翻译. http://files.cnblogs.com/files/sishenzaixi ...

  7. angular -- $route API翻译

    $route -$routeProvider服务 -依赖ngRoute模块 $route能够在路径发生改变的时候,渲染不同的视图,调用不同的控制器.它监测了$location.url(),然后根据路径 ...

  8. C#调百度通用翻译API翻译HALCON的示例描述

    目录 准备工作 参数简介 输入参数 输出参数 使用HttpClient 翻译工具类 应用:翻译HALCON的示例描述 准备工作 HALCON示例程序的描述部分一直是英文的,看起来很不方便.我决定汉化一 ...

  9. DOJO官方API翻译或解读-dojo/store (自定制存储器)

    dojo/store 是对已存数据的访问和存储的统一接口,dojo/store意图以一个简单.易于使用和扩展的API来,替代.集合和改善 dojo/data 和dojox/storage .基于HTM ...

随机推荐

  1. LC并联谐振回路

  2. hdu 5475 An easy problem(暴力 || 线段树区间单点更新)

    http://acm.hdu.edu.cn/showproblem.php?pid=5475 An easy problem Time Limit: 8000/5000 MS (Java/Others ...

  3. date之Hi时间的思考

    工作中用到需要一个判断当前时间是否在 23:50到1:00之间的一段程序,在和别人的讨论中基本上有以下两种做法 1.分别获取时分进行判断和比较 <?php function check_time ...

  4. Python之函数进阶

    本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一.递归函 ...

  5. (剑指Offer)面试题19:二叉树的镜像

    题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的定义如下: struct TreeNode{ int val; TreeNode* left; TreeNode* right; }; 输 ...

  6. UIWebView 获取当前的javascript上下文,并js,oc互调

    OC调用UIWebView 中的js,网上例子很多,最常用的是UIWebView自带的一个方法: - (NSString *)stringByEvaluatingJavaScriptFromStrin ...

  7. Netty高并发原理

        Netty是一个高性能 事件驱动的异步的非堵塞的IO(NIO)框架,用于建立TCP等底层的连接,基于Netty可以建立高性能的Http服务器.支持HTTP. WebSocket .Protob ...

  8. 推荐系统之基于二部图的个性化推荐系统原理及C++实现

    1.引言 许多网站都喜欢让用户点击“喜欢/不喜欢”,“顶/反对”,也正是这种很简单的信息也可以利用起来对用户进行推荐!这里介绍一种基于网络结构的推荐系统! 由于推荐系统深深植根于互联网,用户与用户之间 ...

  9. C++ Code_ImageList

    主题 1.  创建图像列表 2.  使用图像列表绘图 3. 4. 5.     代码::创建图像列表 双击 Cproject03Dlg在     下面添加 1 句 ////////////////// ...

  10. Redis for Windows(C#缓存)安装和使用

    Redis for Windows(C#缓存)安装和使用 前言 前段时间写过两篇简单的有关Memcached缓存的相关文章,当然了只是入门的如何使用而已.最近这两天又发现了Redis这个神奇的东西,之 ...