- 浏览: 26425 次
- 性别:
- 来自: 北京
最新评论
大家好,上一讲我们介绍了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开发联盟)
更多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开发联盟)
发表评论
-
《2012Sundy高级课程更新》Android深入浅出系列课程文章列表
2012-03-15 10:25 1754既然是一个系列的教程 ... -
Android开发视频教程-深入浅出系列Lesson20-AFF111029学习Android界面开发的基础
2012-03-19 09:37 1656课程目标: 学习和掌握Android界面开发学习方法 了解An ... -
Android开发视频教程-深入浅出系列Lesson19-AFF110727_蓝牙编程入门
2012-03-19 09:38 1848课程目标 知道蓝牙是什么,能够做什么,知道常用蓝牙的API ... -
Android开发视频教程-深入浅出系列Lesson18-SPI110723_Mobile.Widget概述
2012-03-16 09:39 921· 课程目标: 知道Mobile Widget概念 , 知道其 ... -
Android深入浅出系列课程---Lesson17-在Android2.2以上实现MobileWidget
2012-03-16 09:36 1088大家好,上一讲我们介绍了虚拟机概述,JIT概述,这一讲我们将进 ... -
Android深入浅出系列课程---Lesson15LLY110602_Dalvik虚拟机概述
2012-03-16 09:35 1164更多Android深入浅出课程列表:http://www.eo ... -
Android深入浅出系列课程---Lesson14Handler-不可缺少的异步
2012-03-16 09:33 954大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
2012-03-15 10:43 946大家好,上一讲我们介绍了Android.Framework源码 ... -
Android深入浅出系列课程---Lesson12 AFF110525_Android多线程系统概要
2012-03-15 10:42 1061大家好,上一讲我们介绍了Android.Framework源码 ... -
Android深入浅出系列课程--Lesson11 Android.Framework源码下载及编译
2012-03-15 10:29 2260大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson10 SHW110518_关于课程顺序的说明
2012-03-15 10:28 883大家好,上一讲我们介绍了ActivityWindowView的 ... -
Android深入浅出系列课程---Lesson9 AAF110430_ActivityWindowView的关系
2012-03-14 10:39 1072更多Android深入浅出课程列表:http://www.eo ... -
Android深入浅出系列课程---Lesson8 Android应用程序启动
2012-03-14 10:37 1164特别推荐新课程:Android ... -
Android深入浅出系列课程---Lesson7 LLY110426_Android系统启动
2012-03-14 10:35 764大家好,上一讲我们介绍了Activity状态保存,这一讲我们将 ... -
Android深入浅出系列课程---Lesson6 AAF110503_Activity状态保存
2012-03-14 10:32 897大家好,上一讲我们介绍了Android中Activity是什么 ... -
Android深入浅出系列课程---Lesson5 AAF110502_Activity是什么
2012-03-14 10:28 873大家好,上一讲我们介绍了Manifest文件的使用,这一讲我们 ... -
Android深入浅出系列课程---Lesson4-AAF110429_介绍Manifest文件的使用
2012-03-13 13:33 1006大家好,上一讲我们介绍了进程生命周期(Process Life ... -
Android深入浅出系列课程---Lesson3 AAF110427_进程生命周期Process Lifecycle
2012-03-13 13:15 983大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson2 AAF110426_Log打开android大门
2012-03-13 13:12 933大家好,上一讲对Android中Context的介绍,这一讲将 ... -
Android深入浅出系列课程---Lesson1 AAF110430_android中context介绍
2012-03-13 13:06 848大家好,这一讲我们来介绍下Android中Context 一、 ...
相关推荐
根据提供的信息,我们可以总结出以下关于“Android深入浅出”的知识点: ### 一、概览 **标题**:“Android深入浅出” **描述**:该资源包含一系列与Android开发相关的视频教程下载链接,旨在帮助学习者更好地...
【v2801 Teknovus 8014a86a4aff0 VSolution 知识点详解】 在IT行业中,特别是网络设备和光纤通信领域,"v2801 Teknovus 8014a86a4aff0 VSolution" 提供了一种关键的解决方案。这个标题暗示了我们正在讨论的是...
很抱歉,根据您提供的信息,"92b4aff5f2254284c8074cdfb01f66ac.zip" 是一个ZIP压缩文件的哈希值,通常用于标识文件的唯一性。哈希值是由特定算法计算出的一串固定长度的数字和字母组合,它能够反映出文件内容的详细...
windows环境下的gdcm python包,官网上的exe程序包,建议也要安装一下。 建议用Anaconda 进行安装
【标题】"android-support-v7.jar" 是一个重要的Android库文件,它属于Android Support Library的v7包,专门用于向后兼容旧版本的Android系统。这个库的主要目标是为开发者提供一套API,使得他们能够在较旧版本的...
在IT行业中,尤其是在数据中心或服务器管理领域,更换电源供应单元是一项常见的维护任务。这份文档"AFF A300 - Swapping out a power supply.pdf"详细介绍了如何在AFF A300系统中安全有效地更换电源供应器。AFF A300...
本文档主要针对“AFF A200”系统,指导用户如何安全地替换出现故障的DIMM。 在开始更换DIMM之前,有几个关键步骤和注意事项需要遵循: 1. **确保系统其它组件正常运行**:在更换DIMM之前,必须确认系统中的所有...
在IT领域,尤其是在数据中心或服务器管理中,更换电源供应单元是一项常见的维护任务,尤其是在使用如NetApp AFF A200这样的高性能存储系统时。本文将详细介绍如何安全有效地为AFF A200系统更换电源供应。 首先,...
《iOS游戏应用源代码解析——基于ferbass-lighter-d4aff2c.zip》 在移动开发领域,iOS游戏开发以其独特的用户体验和强大的硬件支持备受开发者青睐。本篇文章将深入探讨一个名为“ferbass-lighter-d4aff2c”的iOS...
《Xshell6、Xftp与Xlpd:全能的远程连接解决方案》 在IT行业中,高效、安全的远程连接工具是必不可少的。Xshell6、Xftp和Xlpd这三款软件,作为由NetSarang开发的一体化套装,为用户提供了强大的远程操作、文件传输...
### Android中安装Asset下的APK 在Android开发中,有时候我们可能会遇到需要动态加载或安装应用内部资源(如APK)的需求。本文将详细介绍如何在Android应用中安装存储于`assets`目录下的APK文件。 #### 一、背景...
解决这个问题需要进行一系列的故障排除步骤,下面详细介绍一种可能的解决方案: 1. **强制重启并进入高级恢复选项** 当开机蓝屏时,可以尝试连续长按电源键强制关机,重复3-5次。这将引导系统进入“恢复”界面。在...
在本文档中,"AFF A300 - Replacing the Chassis.pdf" 提供了关于如何更换NetApp AFF A300系统中的机箱的详细步骤。这是一个涉及到存储系统的维护操作,通常在原机箱出现故障或需要升级时执行。以下是整个过程的关键...
TX2的pytorch安装使用 sudo pip3 install 文件名,即可。wget这个文件的网址,无法下载,特地放上来请大家食用。
基于AD9850的信号发生器的设计与实现-3e8191126edb6f1aff001fb6
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:快进错误校正工具箱! AFF3CT是专用于前向纠错(FEC或信道编码)的模拟器和库。 它是用C ++编写的,并且支持多种代码:从广泛使用的Turbo代码到新的Polar代码,包括低密度奇偶校验(LDPC...
"AFF C190 - Replacing the controller module"这个文档详细阐述了如何在NetApp的AFF C190系统中更换控制器模块。以下是对这一过程的关键知识点的详细说明: 1. **前期准备**:在开始更换控制器模块之前,必须确保...
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 系统 DIMM 替换指南 在 AFF A300 系统中, DIMM(Dual In-Line Memory Module)是控制模块的一个重要组件,负责存储系统的数据缓存和错误更正。然而,当系统记录增加的可纠正错误校验码(ECC)时, DIMM ...