如果他们使用相同的 Looper,那么拥有多个 Handler 有什么意义吗?例如:private Handler firstHandler = new Handler(Looper.getMainLooper());private Handler secondHandler = new Handler(Looper.getMainLooper());firstHandler.post(...);secondHandler.post(...);……他们都发到主线了,有第二个没意义吗?
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
这是一个冗余使用处理程序的例子吗?
是的。
引用自文档:
Handler 允许您发送和处理与线程的 MessageQueue 关联的 Message 和 Runnable 对象。每个 Handler 实例都与一个线程和该线程的消息队列相关联。当你创建一个新的 Handler 时,它被绑定到创建它的线程的线程/消息队列——从那时起,它将把消息和可运行对象传递到该消息队列,并在它们从消息中出来时执行它们队列。
这些处理程序正在向同一个 发送消息MessageQueue
,所以无论如何第二个将在第一个完成后运行,这意味着它是多余的。
此外, TheHandler
与Thread
默认情况下创建的相关联。因此,如果Handler
是在 上创建的,则main thread
不必指定 Looper。
添加回答
举报
0/150
提交
取消