【问题标题】:Android: looper/handler vs. Java Observer?Android:looper/handler vs. Java Observer?
【发布时间】:2011-05-03 16:29:00
【问题描述】:

这些不是竞争对手吗?我认为他们不是,但没有看到。

在需要了解 Service 何时有新 xyz 的 Activity 的上下文中怎么样?

谢谢!

【问题讨论】:

  • 竞争对手是指完成同一件事的两种不同方法?它们的用途确实略有不同。循环器是帮助您创建消息循环,观察器是让您获取正在观察的对象的状态更新。它真的不清楚你的问题是什么..
  • Looper 的目的是处理异步消息……就像 Observer 处理异步 Observable 一样。我的问题是,为什么要使用 looper/handler?
  • 观察者回调不一定是异步的,它只是一种解耦组件的方式。使用处理程序,消息会在未来的某个时间点在当前线程上处理。

标签: java android handler observer-pattern looper


【解决方案1】:

它们用于不同的目的,因此您无法以一种排除另一种的方式进行比较,这可能是您可能想要的。我解释一下:

  • 已注册的观察者收到更改通知一起只需依次调用一次notifyObservers(..)

    李>
  • Handlers 允许您从后台线程修改 UI 组件,但您只处理/更新 1 个“观察者”(由 Handler 处理的那个)。

如果您认为更高级,您甚至可以将两者结合起来,以始终保持无异常,同时从后台线程更新 UI 仍保持观察者模式。

我认为这 5 年来没有人回答你,因为几乎没有人意识到观察者模式的强大功能;-)

【讨论】:

  • 您能否详细说明如何将这两种模式结合起来?例如,如果我有一个 UI,这个 UI 的一个观察者,一个处理从这个 UI 发起的请求的处理程序,以及一个得到这个请求的实际响应的网络组件。如果我想结合这两种模式,流程是什么?谢谢!
猜你喜欢
  • 2012-10-30
  • 2015-08-27
  • 2013-07-30
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 2018-02-22
  • 2016-06-16
  • 1970-01-01
相关资源
最近更新 更多