安卓:Looper/Handler和Java Observer的区别?

3

这些是竞争对手吗?我认为它们不是,但看不出来。

在一个Activity中需要学习何时有新的xyz服务,这个怎么样?

谢谢!


你所说的竞争对手是指实现同一目标的两种不同方式吗?它们确实有稍微不同的用途... looper 是帮助你创建消息循环,observer 是让你获取正在观察的对象的状态更新。但是你的问题并不是很清楚... - Cheryl Simon
一个 Looper 的目的是处理异步消息...就像观察者处理异步可观察对象一样。我的问题是,为什么要使用 looper/handler? - DJC
1
观察者回调函数并不一定是异步的,这只是一种解耦组件的方式。通过处理程序,消息将在将来的某个时间点在当前线程上被处理。 - dhaag23
1个回答

1
它们有不同的目的,因此您不能像您可能打算的那样将一个排除另一个进行比较。我解释一下:
- 注册的观察者会在调用一次notifyObservers(..)时按顺序“全部一起”接收更改通知。 - 处理程序允许您从后台线程修改UI组件,但您只处理/更新一个“观察者”(由处理程序处理的观察者)。
如果您认为更高级,则甚至可以将两者结合使用,以始终在更新UI时保持Observer模式而仍然保持无异常。
我认为在这5年里没有人回答您,因为几乎没有人意识到Observer模式的强大功能;-)

你能详细说明一下这两种模式如何结合吗?例如,如果我有一个UI界面,一个观察者用于此UI界面,一个处理程序来处理从此UI界面发起的某些请求,以及一个网络组件来获取对此请求的实际响应。如果我想要将这两种模式结合起来,流程是什么样的呢?谢谢! - jiu9x9uij

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接