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

原创 2012年03月19日 11:07:39
 大家好,上一讲我们介绍了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开发视频教程-深入浅出系列Lesson20-AFF111029学习Android界面开发的基础

课程目标: 学习和掌握Android界面开发学习方法 了解Android界面如何呈现出来的 了解Android事件机制 如何自定义组件? · 重点难点: 了解界面呈现机制 了解andro...

Android开发视频教程-深入浅出系列Lesson19-AFF110727_蓝牙编程入门

课程目标 知道蓝牙是什么,能够做什么,知道常用蓝牙的API 重点难点 理解蓝牙API,并且熟练使用 考核目标 什么是蓝牙,如何使用? 建立蓝牙端口,接收远端蓝牙数据的过程是什么? 如何进...

Android深入浅出系列课程---Lesson14Handler-不可缺少的异步

大家好,上一讲我们介绍了虚拟机概述,JIT概述,这一讲我们将进入Handler-不可缺少的异步. 课程目标: 熟悉Handler的概念Handler的实现原理Handler 异步实现方法Handl...

Android深入浅出系列课程---Lesson4-AAF110429_介绍Manifest文件的使用

大家好,上一讲我们介绍了进程生命周期(Process Lifecycle)的介绍,这一讲我们将进入Manifest文件的使用。 一、课程目标:         Manifest文件的使用及系统解...

Android深入浅出系列课程---Lesson3 AAF110427_进程生命周期Process Lifecycle

大家好,上一讲我们介绍了Android中Log,这一讲我们来讲下进程生命周期Process Lifecycle。 一、课程目标:         熟悉Android Process生命周期 ...

Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述

大家好,上一讲我们介绍了Android.Framework源码下载及编译,这一讲我们将进入虚拟机概述,JIT概述         课程目标: 知道虚拟机的概念,JVM , JIT        ...

Android深入浅出系列课程---Lesson2 AAF110426_Log打开android大门

大家好,上一讲对Android中Context的介绍,这一讲将进入“玩懂Log,打开Android的大门”。 一、课程目标:         熟悉使用android log形式 学...

Android异步任务AsyncTask实例源码

  • 2016年12月27日 10:53
  • 26.27MB
  • 下载

Android异步任务AsyncTask的简单DEMO

  • 2015年09月22日 11:14
  • 629KB
  • 下载

Android进阶——多线程系列之异步任务AsyncTask的使用与源码分析

基于API24的AsyncTask使用与源码分析 AsyncTask是什么 AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并主...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android深入浅出系列课程---Lesson16-AFF110606_AsyncTask异步任务
举报原因:
原因补充:

(最多只允许输入30个字)