Hanlder Looper Message Messag

2019-01-23  本文已影响0人  我是小矿工

一个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。所以这三个是同时存在的。

上一篇下一篇

猜你喜欢

热点阅读