- 浏览: 25730 次
- 性别:
- 来自: 北京
最新评论
大家好,上一讲我们介绍了虚拟机概述,JIT概述,这一讲我们将进入Handler-不可缺少的异步.
课程目标:
熟悉Handler的概念Handler的实现原理Handler 异步实现方法Handler与线程的关系
重点难点: Handler与线程的关系Handler消息队列的实现
考核目标:
使用Handler是异步的,它会建立新线程么?noHandler是在主线程内么?Handler的post 和 sentMessage方法,使用的是一个队列还是两个?子线程中建立一个handler,然后sendMessage会怎样?子线程建立handler , 构造的时候传入主线程的,Looper?
Yes
课后练习:
用Handler实现图片更新的例子去研究Music app控制palyer controller时候的Handler应用
从一道问题开始研究
Handler是做什么的,既然是异步任务处理, 他本身是多线程的么?
Handler是什么,作用以及为何要引入Handler的概念?
Hanlder作用:
1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器
2)线程间通信。在Android的应用启动时,会创建一个主线程,主线程会创建一个消息队列来处理各种消息。当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了。由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面。
一、 角色描述
1.Looper:(相当于隧道) 一个线程可以产生一个Looper 对象,由它来管理此线程里的Message Queue( 车队,消息隧道) 。
2.Handler: 你可以构造Handler 对象来与Looper 沟通,以便push 新消息到Message Queue 里;或者接收Looper( 从Message Queue 取出) 所送来的消息。
3. Message Queue( 消息队列): 用来存放线程放入的消息。
4 .线程:UI thread 通常就是main thread ,而Android 启动程序时会替它建立一个Message Queue 。
每一个线程里可含有一个Looper 对象以及一个MessageQueue 数据结构。在你的应用程序里,可以定义Handler 的子类别来接收Looper 所送出的消息。
Message
MessageQueue
Looper
当前线程中有一个Looper这样的循环在监听消息队列,但又不是额外的线程,这不是和我们学习的常理相悖么?
Thinking...
Looper 又系统来控制的循环 。
Handler
我们来做几个实验
一、实验一:验证子线程中用主线程Handler实例操作主线程MessageQueue
1、Handler1.sendMessage,Handler1接收
2、Handler1.sendMessage,
Handler2能接收么?No
3、主线程就一个消息队列,为什么不同Handler实例之间不能共享消息(What Flag)?
二、实验二:验证用子进程默认是没有消息队列的
1、子线程中new Handler(),发消息
2、子线程中用HandlerThread,默认有消息队列
三、子线程的Handler可以使用于子线程的消息队列
1、子线程中得到主线程的Looper,发消息
2、使用Looper.prepare(),Looper.loop()
加载器(Loader):加载到内存:execve().
实验总结
1、Handler实例与消息处理是关联的,发送和接收要匹配
2、Handler操作队列,主要是在子线程操作主线程消息队列
3、子线程默认是没有消息队列的
本讲对Handler-不可缺少的异步做了简单的介绍,下一讲将进入Dalvik虚拟机概述,内容预告:LLY110602_Dalvik虚拟机概述,敬请期待。
特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址1:http://www.tudou.com/programs/view/61h8EVjtzFI/ (土豆网)
本课视频地址2:http://www.tudou.com/programs/view/Z_0Hilc8Yts/ (土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)
课程目标:
熟悉Handler的概念Handler的实现原理Handler 异步实现方法Handler与线程的关系
重点难点: Handler与线程的关系Handler消息队列的实现
考核目标:
使用Handler是异步的,它会建立新线程么?noHandler是在主线程内么?Handler的post 和 sentMessage方法,使用的是一个队列还是两个?子线程中建立一个handler,然后sendMessage会怎样?子线程建立handler , 构造的时候传入主线程的,Looper?
Yes
课后练习:
用Handler实现图片更新的例子去研究Music app控制palyer controller时候的Handler应用
从一道问题开始研究
Handler是做什么的,既然是异步任务处理, 他本身是多线程的么?
Handler是什么,作用以及为何要引入Handler的概念?
Hanlder作用:
1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器
2)线程间通信。在Android的应用启动时,会创建一个主线程,主线程会创建一个消息队列来处理各种消息。当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了。由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面。
一、 角色描述
1.Looper:(相当于隧道) 一个线程可以产生一个Looper 对象,由它来管理此线程里的Message Queue( 车队,消息隧道) 。
2.Handler: 你可以构造Handler 对象来与Looper 沟通,以便push 新消息到Message Queue 里;或者接收Looper( 从Message Queue 取出) 所送来的消息。
3. Message Queue( 消息队列): 用来存放线程放入的消息。
4 .线程:UI thread 通常就是main thread ,而Android 启动程序时会替它建立一个Message Queue 。
每一个线程里可含有一个Looper 对象以及一个MessageQueue 数据结构。在你的应用程序里,可以定义Handler 的子类别来接收Looper 所送出的消息。
Message
MessageQueue
Looper
当前线程中有一个Looper这样的循环在监听消息队列,但又不是额外的线程,这不是和我们学习的常理相悖么?
Thinking...
Looper 又系统来控制的循环 。
Handler
我们来做几个实验
一、实验一:验证子线程中用主线程Handler实例操作主线程MessageQueue
1、Handler1.sendMessage,Handler1接收
2、Handler1.sendMessage,
Handler2能接收么?No
3、主线程就一个消息队列,为什么不同Handler实例之间不能共享消息(What Flag)?
二、实验二:验证用子进程默认是没有消息队列的
1、子线程中new Handler(),发消息
2、子线程中用HandlerThread,默认有消息队列
三、子线程的Handler可以使用于子线程的消息队列
1、子线程中得到主线程的Looper,发消息
2、使用Looper.prepare(),Looper.loop()
加载器(Loader):加载到内存:execve().
实验总结
1、Handler实例与消息处理是关联的,发送和接收要匹配
2、Handler操作队列,主要是在子线程操作主线程消息队列
3、子线程默认是没有消息队列的
本讲对Handler-不可缺少的异步做了简单的介绍,下一讲将进入Dalvik虚拟机概述,内容预告:LLY110602_Dalvik虚拟机概述,敬请期待。
特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址1:http://www.tudou.com/programs/view/61h8EVjtzFI/ (土豆网)
本课视频地址2:http://www.tudou.com/programs/view/Z_0Hilc8Yts/ (土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)
发表评论
-
《2012Sundy高级课程更新》Android深入浅出系列课程文章列表
2012-03-15 10:25 1725既然是一个系列的教程 ... -
Android开发视频教程-深入浅出系列Lesson20-AFF111029学习Android界面开发的基础
2012-03-19 09:37 1618课程目标: 学习和掌握Android界面开发学习方法 了解An ... -
Android开发视频教程-深入浅出系列Lesson19-AFF110727_蓝牙编程入门
2012-03-19 09:38 1812课程目标 知道蓝牙是什么,能够做什么,知道常用蓝牙的API ... -
Android开发视频教程-深入浅出系列Lesson18-SPI110723_Mobile.Widget概述
2012-03-16 09:39 897· 课程目标: 知道Mobile Widget概念 , 知道其 ... -
Android深入浅出系列课程---Lesson17-在Android2.2以上实现MobileWidget
2012-03-16 09:36 1062大家好,上一讲我们介绍了虚拟机概述,JIT概述,这一讲我们将进 ... -
Android深入浅出系列课程---Lesson16-AFF110606_AsyncTask异步任务
2012-03-16 09:35 963大家好,上一讲我们介绍了Handler-不可缺少的异步,这一讲 ... -
Android深入浅出系列课程---Lesson15LLY110602_Dalvik虚拟机概述
2012-03-16 09:35 1142更多Android深入浅出课程列表:http://www.eo ... -
Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
2012-03-15 10:43 916大家好,上一讲我们介绍了Android.Framework源码 ... -
Android深入浅出系列课程---Lesson12 AFF110525_Android多线程系统概要
2012-03-15 10:42 1027大家好,上一讲我们介绍了Android.Framework源码 ... -
Android深入浅出系列课程--Lesson11 Android.Framework源码下载及编译
2012-03-15 10:29 2203大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson10 SHW110518_关于课程顺序的说明
2012-03-15 10:28 859大家好,上一讲我们介绍了ActivityWindowView的 ... -
Android深入浅出系列课程---Lesson9 AAF110430_ActivityWindowView的关系
2012-03-14 10:39 1038更多Android深入浅出课程列表:http://www.eo ... -
Android深入浅出系列课程---Lesson8 Android应用程序启动
2012-03-14 10:37 1133特别推荐新课程:Android ... -
Android深入浅出系列课程---Lesson7 LLY110426_Android系统启动
2012-03-14 10:35 736大家好,上一讲我们介绍了Activity状态保存,这一讲我们将 ... -
Android深入浅出系列课程---Lesson6 AAF110503_Activity状态保存
2012-03-14 10:32 872大家好,上一讲我们介绍了Android中Activity是什么 ... -
Android深入浅出系列课程---Lesson5 AAF110502_Activity是什么
2012-03-14 10:28 844大家好,上一讲我们介绍了Manifest文件的使用,这一讲我们 ... -
Android深入浅出系列课程---Lesson4-AAF110429_介绍Manifest文件的使用
2012-03-13 13:33 978大家好,上一讲我们介绍了进程生命周期(Process Life ... -
Android深入浅出系列课程---Lesson3 AAF110427_进程生命周期Process Lifecycle
2012-03-13 13:15 953大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson2 AAF110426_Log打开android大门
2012-03-13 13:12 910大家好,上一讲对Android中Context的介绍,这一讲将 ... -
Android深入浅出系列课程---Lesson1 AAF110430_android中context介绍
2012-03-13 13:06 817大家好,这一讲我们来介绍下Android中Context 一、 ...
相关推荐
玩转Android---组件篇---Handler的使用玩转Android---组件篇---Handler的使用玩转Android---组件篇---Handler的使用
Demo-实例讲解线程池里面的UI如何刷新,处理两个开发者头疼的问题: 1. 数据经常需要读取更新,并且比较耗时,需要分步刷新UI. 2. UI界面切换后,如何停止掉子线程里面正在读取的数据而不会将旧数据刷新到新UI界面上...
Android Weak Handler Memory safer implementation of android.os.Handler Problem Original implementation of Handler always keeps hard reference to handler in queue of execution. Any object in Message or...
Android Handler AsyncTask 异步加载
Introduction Declarative error handling.... @AutoHandler // let compiler know it should analyse your class public interface SimplerErrorListener { // your code has to implement this in
android 线程池 handler异步刷新 双缓存 ,项目使用代码 封装好 可用
赠送jar包:netty-handler-4.1.73.Final.jar; 赠送原API文档:netty-handler-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.73....
handler异步更新
Laravel开发-laravel5-conoha-object-handler 用于Laravel 5上的Conoha对象存储的对象处理程序。
Android 异步处理 Handler+Looper+MessageQueue深入详解
实战HTTP Handler (1) -- 创建一个最简单的HTTP Handler 源码
Android Handler 异步消息机制的例子,详细讲解请看http://bbs.droidstouch.com/thread-70-1-1.html
Android Handler Message 多线程实例 - Intel- Developer Zon
赠送jar包:netty-handler-4.1.68.Final.jar; 赠送原API文档:netty-handler-4.1.68.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.68.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.68....
详细描述了Android的消息处理机制中,Looper和handler类详解
Android高手进阶教程之----Android Handler的使用!!! .doc Android高手进阶教程之----Android Launcher抽屉类SlidingDrawer的使用.doc Android高手进阶教程之----Android Location的使用!! .doc Android高手进阶...
Handler消息机制和syncTask异步加载,有代码和文档。
android 线程交互 进程讲解 Handler Message AsyncTask 线程模式
handler结合Thread异步加载网络图片,诠释怎么在android实现多线程加载网络图片。。。
android Handler的使用,我也刚开始学习,从别处下载了给大家分享