Android 中级应用 handler 之二 深入handler
2011-06-24 15:49
190 查看
关于handler的文章原理的文章我见过别人写的更好的,我直接转载过来地址.不重复制造轮子.
http://www.cnblogs.com/xirihanlin/archive/2011/04/11/2012746.html
绝对是一个高人写的,但是看完这篇文章我还是有疑问,但是可以根据这篇文章,我们知道了解决
[ Android 中级应用 handler 之一 "那个年代还不知handler"] 中要实现的功能的原理:
1.创建handler 并 实现 handleMessage()方法,在此方法里面更新view
2.创建Message,封装信息,通过handler sendMessage()方法发送Message
3.hanlder发送Message的过程实际是把Message放到到MessageQueue中.
4.主线程的looper一直在运行loop方法(死循环),一直从MessageQueue中取得Message,并取得关联此Message的Handler,调用dispatchMessage 方法,最终会去调用handleMessage()方法,而实现更新.
疑问分析:
主线程一直在执行loop方法,那么当前activity一直处于阻塞状态,用户怎么在界面操作.
根据我debug发现,其实我们所说的界面操作,比如点击一个按钮的操作.有另外一个线程来监听这个操作,并把这个操作封装程Message或是Runable.存放到线程队列或者是Message队列当中.
那么这样大家就会明白activity一直被阻塞的过程,为什么还会执行里面的button监听的方法.
http://www.cnblogs.com/xirihanlin/archive/2011/04/11/2012746.html
绝对是一个高人写的,但是看完这篇文章我还是有疑问,但是可以根据这篇文章,我们知道了解决
[ Android 中级应用 handler 之一 "那个年代还不知handler"] 中要实现的功能的原理:
1.创建handler 并 实现 handleMessage()方法,在此方法里面更新view
2.创建Message,封装信息,通过handler sendMessage()方法发送Message
3.hanlder发送Message的过程实际是把Message放到到MessageQueue中.
4.主线程的looper一直在运行loop方法(死循环),一直从MessageQueue中取得Message,并取得关联此Message的Handler,调用dispatchMessage 方法,最终会去调用handleMessage()方法,而实现更新.
疑问分析:
主线程一直在执行loop方法,那么当前activity一直处于阻塞状态,用户怎么在界面操作.
根据我debug发现,其实我们所说的界面操作,比如点击一个按钮的操作.有另外一个线程来监听这个操作,并把这个操作封装程Message或是Runable.存放到线程队列或者是Message队列当中.
那么这样大家就会明白activity一直被阻塞的过程,为什么还会执行里面的button监听的方法.
相关文章推荐
- Android 中级应用 handler 之二 初试handler
- Android 中级应用 handler 之一 "那个年代还不知handler"
- 【Android】Handler的应用(二):从服务器端加载JSON数据的优化
- 深入源码解析Android中的Handler,Message,MessageQueue,Looper
- Android开发者必须深入学习的10个应用开源项目
- 从零开始--系统深入学习android(理论-开发前准备-10.一个好的应用应该具备哪些方面-10.1易于访问)保留
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- 深入探索Android中的Handler
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- 深入分析Android ViewStub的应用详解
- 深入源码解析Android中的Handler,Message,MessageQueue,Looper
- 深入理解Android消息处理系统——Looper、Handler、Thread
- Android开发者应该深入学习的10个开源应用项目【ZZ】
- Android开发者应该深入学习的10个开源应用项目
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android开发:Handler Runnable和Thread之间的区别和联系 应用--------------------看完本篇,从此一览无余!
- Android开发者应该深入学习的10个开源应用项目
- Android应用学习记录------AsyncTask和AsyncQueryHandler结合获取手机联系人信息
- Android高级应用开发(深入篇) stage3(下)- 高级商用界面开发 学习笔记