重新回顾handler机制,结合源码加深理解。
涉及:handler,looper,messagequeue,message。
面试:Handler机制的原理,内部是如何实现的?
答:Android中的handler多用于主线程 和 子线程之间通信,比如在Android中子线程是不允许修改UI的,只能让子线程通过handler给主线程发消息,主线程来修改UI。Handler整个机制的实现,还依赖Looper、Message两个核心内容。在主线程中Android默认给我们创建了Looper,当我们通过handler.sendMessage后,该消息被添加到MessageQueue中,Looper.loop中有个while(true)的循环不停的从消息队列中取消息。去消息的过程是线程阻塞的,这样不至于在没有消息的时候过多的耗费CPU资源。