一个Handler的创建 ,必须要有一个Looper ,Handler hander = new Hander(Looper){ @override handerMessage(){}} ,我们一般创建hander是在主线程,而主线程默认已经有loop了,所以我们这里 直接new Hander(){},不需要传递就行了。如果非主线程,需要传入对应的loop。如果这个hander的new是在A线程执行的,然后A线程里面 post或者sendMessage(),会把meessage发送出去,被messageQueue包裹着,被发送到消息队列里面,然后创建hander的这个线程里面的lopper,发现了消息队列里面有新的messageQueue,就会轮询处理这个queue,也就是dispatch (派发)消息,会回调到创建handler的handlerMessage()里面 。 一个hander的创建 ,必须要传入一个looper对象,而一个looper的创建又会创建对应的messageQueue。所以这三个是同时存在的。
Hanlder Looper Message MessageQueue
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Handler的由来 当程序第一次启动的时候,Android会同时启动一条主线程(Main Thread)来负责处...
- Android消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,An...
- 美图欣赏 Java、Android知识点汇集 Java集合类 ** Java集合相关的博客** java面试相关 ...