Android中的 Handler
来源:互联网 发布:如何删除win10网络共享 编辑:程序博客网 时间:2024/06/05 16:01
Handler 消息处理器,顾名思义他是一个用来处理消息的工具。常见的搭配有Handler,Looper,Message,MessageQueue。
从该图可以看出一个程序可以有多个线程,但只能有一个Looper和一个MessageQueue,而Handler和Message的数量则不受限制。因此我们也能分析出它的工作模式,那就是所有的Message汇聚成一个MessageQueue,然后再由Looper交给Handler处理。
Looper的使用方法相当的简单,因为他的源码上附有一个简单的Demo。
Handler和Thread一样窦世友Linux底层处理。这也就是说不好关闭,建议一般别用。
Handler源码分析:
恕在下无能,只能看出里面有很多构造。以及handleMessage,以及其他的类似getMessage的方法.
handleMessage():当接收到其他线程发送的消息触发。
注意,他没有run方法。
Looper源码简易分析:
ThreadLocal是唯一的。
ThreadLocal是一个List类型,及长度可变,先进先出。
prepareMainLooper里面的锁是类锁,这就意味着一次只能访问一个。
最重要的当然是内部的loop()方法(为了自己的自学能力请亲自翻看源码)
MessageQueue,消息队列,没啥好解释的,值得一提的就是他还有一个接口。
synchronized 锁,以类为锁,则该方法一次只能有一个对象访问,防治同步数据一样。
RunAble:接口。轻量级线程。只能通过主线程或子线程启动。只需要重写Run方法。
0 0
- Android中的Handler
- android中的handler例
- Android中的Handler总结
- Android中的Handler总结
- Android中的handler
- Android中的Handler总结
- Android中的Handler机制
- Android中的Handler总结
- Android中的Handler总结
- Android中的Handler总结
- Android中的Handler总结
- 理解android中的handler
- android中的handler
- Android中的Handler总结
- Android中的Handler总结
- Android中的Handler总结
- android中的handler
- Android中的Handler
- jsp中获得的路径的方法
- STM32的Systick定时器
- 每天一命令(3) mkdir (make directories) 1分钟
- Fedora23 - Broadcom not seeing specific wifi [sees others]
- IT相关网址收藏
- Android中的 Handler
- 1.InetAddress和InetSocketAddress
- IPv4与IPv6的区别是什么?
- vc++ 项目编程
- 数据库_ PL/SQL 怎么判断两个结果集是否相等
- 理解android与服务器交互
- ssh环境搭建(1)-lib篇(spring4.2.6+struts2.5+hibernate5.1 )
- el表达式取出集合等元素
- cuda纹理内存使用