一个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面试相关 ...