Android:Handler机制的原理
2016-07-05 16:00
281 查看
在主线程中定义一个Handler,在子线程中进行Message的封装,(并将需要返回的数据用Message中的Obj带回,)
用Handler的sendMessage方法进行发送消息,在sendMessage方法底层调用了SendMessageDelayed方法,
而SendMessageDelayed方法底层调用了sendMessageAttime方法,而sendMessageAtTime方法底层调用了handler
的enqueueMessage方法将消息发送给消息队列Messagequeue,同时Handler的的enqueueMessage方法调用了
Messagequeue的enqueueMessage()方法将消息压入队列,同时由Looper 提供动力,通过调用loop()方法,
loop()方法中有一个无限for循环并调用了MessageQueue的next()方法将消息运输到主线程,
通过target属性找到对应的handler,handler的dispatchMessage方法将消息分发(回调了handleMessage方法进行
)。
用Handler的sendMessage方法进行发送消息,在sendMessage方法底层调用了SendMessageDelayed方法,
而SendMessageDelayed方法底层调用了sendMessageAttime方法,而sendMessageAtTime方法底层调用了handler
的enqueueMessage方法将消息发送给消息队列Messagequeue,同时Handler的的enqueueMessage方法调用了
Messagequeue的enqueueMessage()方法将消息压入队列,同时由Looper 提供动力,通过调用loop()方法,
loop()方法中有一个无限for循环并调用了MessageQueue的next()方法将消息运输到主线程,
通过target属性找到对应的handler,handler的dispatchMessage方法将消息分发(回调了handleMessage方法进行
)。
相关文章推荐
- Android中ListView的优化
- Android Viewflipper详解。。
- android sqlite blob
- 测试搜集android:bug的方法(基于人测试的)
- Android性能优化 浅析
- Android 基于Message的进程间通信 Messenger完全解析
- hello world (android mediaplayer)
- Android基础知识回顾--Activity四种加载模式分析
- Android 实现两个Activity跳转实例
- [Android]自定义View标题栏TitleBar
- android 圆形进度条的简单实现
- [置顶] Android开发之数据存储——SharedPreferences基础知识详解,饿补学会基本知识,开发者必会它的用法。
- 记一次使用Android studio修改代码不生效的问题
- Android MVP与MVC框架模式
- Android5.0以上版本查看应用使用情况
- 99、Android中定时执行任务的3种实现方法
- 关于getScrollx和getScrolly的理解
- android里TextView加下划线的几种方式
- Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载)
- 关于android camera2的开发小记