为了账号安全,请及时绑定邮箱和手机立即绑定

这是一个冗余使用处理程序的例子吗?

这是一个冗余使用处理程序的例子吗?

阿波罗的战车 2021-08-25 17:13:17
如果他们使用相同的 Looper,那么拥有多个 Handler 有什么意义吗?例如:private Handler firstHandler = new Handler(Looper.getMainLooper());private Handler secondHandler = new Handler(Looper.getMainLooper());firstHandler.post(...);secondHandler.post(...);……他们都发到主线了,有第二个没意义吗?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

是的,两个处理程序都指向相同的"MessageQueue"



查看完整回答
反对 回复 2021-08-25
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

这是一个冗余使用处理程序的例子吗?

是的。

引用自文档

Handler 允许您发送和处理与线程的 MessageQueue 关联的 Message 和 Runnable 对象。每个 Handler 实例都与一个线程和该线程的消息队列相关联。当你创建一个新的 Handler 时,它被绑定到创建它的线程的线程/消息队列——从那时起,它将把消息和可运行对象传递到该消息队列,并在它们从消息中出来时执行它们队列。

这些处理程序正在向同一个 发送消息MessageQueue,所以无论如何第二个将在第一个完成后运行,这意味着它是多余的。

此外, TheHandlerThread默认情况下创建的相关联。因此,如果Handler是在 上创建的,则main thread不必指定 Looper。


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信