1、
Q:是否可以在一个线程中创建多个Handler对象?
A:一个线程中可以创建多个Handler对象。
Handler发送消息的过程:
首先可以确定,每个线程中只能有唯一的Looper和MessageQueue。唯一性由 ThreadLocal 保证。当第一个Handler在线程中初始化时,会绑定到当前线程的Looper和MessageQueue(Handler构造函数是这样写的:mLooper = Looper.myLooper(); mQueue = mLooper.mQueue;) ,然后在初始化其他Handler时,会直接获取第一个Handler初始化时创建的Looper和MessageQueue。
由于MessageQueue对于Handler是一对多的,当Handler通过Looper查询MessageQueue获取消息时,首先会分析消息中的参数,确定消息对应的Handler,然后分发给指定的Handler进行处理。

from https://www.codetd.com/en/article/13891908
1、
Q:是否可以在一个线程中创建多个Handler对象?
A:一个线程中可以创建多个Handler对象。
Handler发送消息的过程:
首先可以确定,每个线程中只能有唯一的Looper和MessageQueue。唯一性由 ThreadLocal 保证。当第一个Handler在线程中初始化时,会绑定到当前线程的Looper和MessageQueue(Handler构造函数是这样写的:mLooper = Looper.myLooper(); mQueue = mLooper.mQueue;) ,然后在初始化其他Handler时,会直接获取第一个Handler初始化时创建的Looper和MessageQueue。
由于MessageQueue对于Handler是一对多的,当Handler通过Looper查询MessageQueue获取消息时,首先会分析消息中的参数,确定消息对应的Handler,然后分发给指定的Handler进行处理。
from https://www.codetd.com/en/article/13891908