本文主要是介绍一个线程可以有几个Handler,几个Looper,几个MessageQueue对象?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个线程可以有多个Handler,但是只有一个Looper对象,只有一个MessageQueue对象。
在Looper的prepare方法中创建了Looper对象,并放入到ThreadLocal中,并通过ThreadLocal来获取looper的对象, ThreadLocal的内部维护了一个ThreadLocalMap类, 里面存着<key,value>
key是当前线程(默认会是主线程) value为loop, 所以,一个线程最多只能有一个Looper对象。
在Looper的构造方法中创建了MessageQueue对象,并赋值给mQueue字段。因为Looper对象只有一个,那么Messagequeue对象肯定只有一个。
这篇关于一个线程可以有几个Handler,几个Looper,几个MessageQueue对象?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!