请原谅这个问题的基本性质 - 但我们都必须从某个地方开始。我做了一些谷歌搜索,但所有答案似乎都与UI事件有关。
我正在创建一个非常简单的Android应用程序,它将在屏幕上显示您的位置。我有扩展Activity的主类(HelloAndroid),我创建了一个侦听更新的LcoationUpdateHandler类。
HelloAndroid拥有LocationUpdateHandler的一个实例,所以我的问题是LocationUpdateHandler如何与HelloAndroid进行通信。
在flex中,我会将一个事件从一个发送到另一个,但是从我所做的搜索中,这似乎不是一种非常简单的java-y方式吗?
感谢您的帮助。
答案 0 :(得分:2)
当HelloAndroid实例创建一个LocationUpdateHandler实例时,它可以在构造函数中传递对自身的引用,LocationUpdateHandler可以存储该引用,以便在事件的情况下用于将来的方法调用。
对于这些情况,您实际上并不需要知道什么类型的对象实例化LocationUpdateHandler。这是接口进来,您可以定义一个定义事件方法的接口并实现该接口,以便LocationUpdateHandler可以保持对该接口的引用以传递事件。
如果情况是对称的,两个类都可以实现相同的事件接口。
答案 1 :(得分:1)
听起来你正在寻找的是Observer pattern。它的工作方式是观察者注册他们正在观察的对象,以便他们可以在事件中得到通知。
在您的具体情况下,如果您希望LocationUpdateHandler
将信息推送到HelloAndroid
,则必须了解HelloAndroid
。所以你的LocationUpdateHandler
至少应该包含对HelloAndroid
的引用,但为了概括它,它应该有一个List
个观察者,它们都实现了一个包含一个可以被调用的回调函数的公共接口只要LocationUpdateHandler
有更新。