`
fxxd1212
  • 浏览: 26425 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android深入浅出系列课程---Lesson16-AFF110606_AsyncTask异步任务

阅读更多
大家好,上一讲我们介绍了Handler-不可缺少的异步,这一讲我们将进入AFF110606_AsyncTask异步任务.
更多Android深入浅出课程列表:http://www.eoeandroid.com/thread-109361-1-1.html
一、课程目标:了解AsyncTask类 以及此类的实现 。 明了它与Handler谁更轻量级如何使用AsyncTask .
二、重点难点:AsyncTask与线程及线程池的关系如何分析进程的内存占用?
三、考核目标:AsyncTask是多线程么?与Handler相比, AsyncTask消耗资源情况如何,为什么?  
四、课后练习:写一个使用AsyncTask 从网络更新显示图片的例子(参照Demo)

&AsyncTask的定义
AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers.

An asynchronous task is defined by a computation that runs on a background thread and whose result is published on the UI thread. An asynchronous task is defined by 3 generic types, called Params, Progress and Result, and 4 steps, called onPreExecute, doInBackground, onProgressUpdate and onPostExecute

Android为了降低异步操作开发难度,在Handler基础上提供了AsyncTask。AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。
&演示AsyncTask用法:Demo
AsyncTask定义了三种泛型类型 Params,Progress和Result。
        Params 启动任务执行的输入参数,比如HTTP请求的URL。
        Progress 后台任务执行的百分比。
        Result 后台执行任务最终返回的结果,比如String。
AsyncTask方法  必选方法:
        doInBackground(Params…) 后台执行,比较耗时的操作都可以放在这里。注意这里不能直接操作UI。此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间。在执行过程中可以调用publicProgress(Progress…)来更新任务的进度。
        onPostExecute(Result)  相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI。 此方法在主线程执行,任务执行的结果作为此方法的参数返回可选方法:
        onProgressUpdate(Progress…)   可以使用进度条增加用户体验度。 此方法在主线程执行,用于显示任务执行的进度。
        onPreExecute()        这里是最终用户调用Excute时的接口,当任务执行之前开始调用此方法,可以在这里显示进度对话框。
        onCancelled()             用户调用取消时,要做的操作

AsyncTask三个状态:pending , running , finished

使用AsyncTask类,遵守的准则:
        Task的实例必须在UI thread中创建;
        execute方法必须在UI thread中调用;
        不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法;
该task只能被执行一次,否则多次调用时将会出现异常;
本讲对Dalvik虚拟机概述介绍,下一讲将进入AsyncTask异步任务,内容预告:Android开发视频教程-深入浅出系列Lesson17-SPI110725_在Android2.2以上实现MobileWidget,敬请期待。

特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址:http://v.youku.com/v_show/id_XMzI4MDg4NzQ4.html
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
网址:http://www.mobidever.com/forum.php (Mobidever-Android开发联盟)
  • 大小: 15.2 KB
分享到:
评论

相关推荐

    Android深入浅出

    根据提供的信息,我们可以总结出以下关于“Android深入浅出”的知识点: ### 一、概览 **标题**:“Android深入浅出” **描述**:该资源包含一系列与Android开发相关的视频教程下载链接,旨在帮助学习者更好地...

    v2801 teknovus 8014a86a4aff0_vsolution_

    【v2801 Teknovus 8014a86a4aff0 VSolution 知识点详解】 在IT行业中,特别是网络设备和光纤通信领域,"v2801 Teknovus 8014a86a4aff0 VSolution" 提供了一种关键的解决方案。这个标题暗示了我们正在讨论的是...

    92b4aff5f2254284c8074cdfb01f66ac.zip

    很抱歉,根据您提供的信息,"92b4aff5f2254284c8074cdfb01f66ac.zip" 是一个ZIP压缩文件的哈希值,通常用于标识文件的唯一性。哈希值是由特定算法计算出的一串固定长度的数字和字母组合,它能够反映出文件内容的详细...

    gdcm-2.8.4-py36_vc14h2a52511_0.tar.bz2

    windows环境下的gdcm python包,官网上的exe程序包,建议也要安装一下。 建议用Anaconda 进行安装

    android-support-v7.jar

    【标题】"android-support-v7.jar" 是一个重要的Android库文件,它属于Android Support Library的v7包,专门用于向后兼容旧版本的Android系统。这个库的主要目标是为开发者提供一套API,使得他们能够在较旧版本的...

    AFF A300 - Swapping out a power supply.pdf

    在IT行业中,尤其是在数据中心或服务器管理领域,更换电源供应单元是一项常见的维护任务。这份文档"AFF A300 - Swapping out a power supply.pdf"详细介绍了如何在AFF A300系统中安全有效地更换电源供应器。AFF A300...

    AFF A200 - Replacing DIMMs.pdf

    本文档主要针对“AFF A200”系统,指导用户如何安全地替换出现故障的DIMM。 在开始更换DIMM之前,有几个关键步骤和注意事项需要遵循: 1. **确保系统其它组件正常运行**:在更换DIMM之前,必须确认系统中的所有...

    AFF A200 - Swapping out a power supply.pdf

    在IT领域,尤其是在数据中心或服务器管理中,更换电源供应单元是一项常见的维护任务,尤其是在使用如NetApp AFF A200这样的高性能存储系统时。本文将详细介绍如何安全有效地为AFF A200系统更换电源供应。 首先,...

    iOS游戏应用源代码——ferbass-lighter-d4aff2c.zip

    《iOS游戏应用源代码解析——基于ferbass-lighter-d4aff2c.zip》 在移动开发领域,iOS游戏开发以其独特的用户体验和强大的硬件支持备受开发者青睐。本篇文章将深入探讨一个名为“ferbass-lighter-d4aff2c”的iOS...

    xmanager6qypjb_downyi.com.zip

    《Xshell6、Xftp与Xlpd:全能的远程连接解决方案》 在IT行业中,高效、安全的远程连接工具是必不可少的。Xshell6、Xftp和Xlpd这三款软件,作为由NetSarang开发的一体化套装,为用户提供了强大的远程操作、文件传输...

    Android中安装asset下的apk

    ### Android中安装Asset下的APK 在Android开发中,有时候我们可能会遇到需要动态加载或安装应用内部资源(如APK)的需求。本文将详细介绍如何在Android应用中安装存储于`assets`目录下的APK文件。 #### 一、背景...

    升级Win10后开机蓝屏报错尝试解决办法.pdf

    解决这个问题需要进行一系列的故障排除步骤,下面详细介绍一种可能的解决方案: 1. **强制重启并进入高级恢复选项** 当开机蓝屏时,可以尝试连续长按电源键强制关机,重复3-5次。这将引导系统进入“恢复”界面。在...

    AFF A300 - Replacing the chassis.pdf

    在本文档中,"AFF A300 - Replacing the Chassis.pdf" 提供了关于如何更换NetApp AFF A300系统中的机箱的详细步骤。这是一个涉及到存储系统的维护操作,通常在原机箱出现故障或需要升级时执行。以下是整个过程的关键...

    torch-1.1.0a0+862aff6-cp36-cp36m-linux_aarch64.whl

    TX2的pytorch安装使用 sudo pip3 install 文件名,即可。wget这个文件的网址,无法下载,特地放上来请大家食用。

    基于AD9850的信号发生器的设计与实现-3e8191126edb6f1aff001fb6

    基于AD9850的信号发生器的设计与实现-3e8191126edb6f1aff001fb6

    Wireless.USB.Adapter-V8.zip

    RTL8188CUS_Combo_AFFC RTL8188CUS_Solo RTL8188CUS_VL RTL8188CUS_solo_AFF7 RTL8188CUS_solo_AFF9 RTL8188CUS_solo_AFFA RTL8188RU RTL8188RU_Netcore RTL8192CU RTL8192CU_8177 ...

    2048的matlab源代码-aff3ct-RC:aff3ct-RC

    2048的matlab源代码AFF3CT:快进错误校正工具箱! AFF3CT是专用于前向纠错(FEC或信道编码)的模拟器和库。 它是用C ++编写的,并且支持多种代码:从广泛使用的Turbo代码到新的Polar代码,包括低密度奇偶校验(LDPC...

    AFF C190 - Replacing the controller module.pdf

    "AFF C190 - Replacing the controller module"这个文档详细阐述了如何在NetApp的AFF C190系统中更换控制器模块。以下是对这一过程的关键知识点的详细说明: 1. **前期准备**:在开始更换控制器模块之前,必须确保...

    sublime-text_build-3114_i386.deb

    8A353C41 872A0D5C DF9B2950 AFF6F667 C458EA6D 8EA3C286 98D1D650 131A97AB AA919AEC EF20E143 B361B1E7 4C8B7F04 B085E65E 2F5F5360 8489D422 FB8FC1AA 93F6323C FD7F7544 3F39C318 D95E6480 FCCC7561 8A4A1741 68...

    AFF A300 - Replacing DIMMs.pdf

    AFF A300 系统 DIMM 替换指南 在 AFF A300 系统中, DIMM(Dual In-Line Memory Module)是控制模块的一个重要组件,负责存储系统的数据缓存和错误更正。然而,当系统记录增加的可纠正错误校验码(ECC)时, DIMM ...

Global site tag (gtag.js) - Google Analytics