0

我有一个简单的 Android 应用程序,其中有一个带有 Observable 对象 foo 的 Activity。我有一个私有内部类在我的活动中实现观察者,它使用传递给更新的参数更新 GUI。创建活动时,我将 Observer 与 foo.addObserver 附加在一起。

但是,我的观察者只收到一次通知,然后就不再收到更新。我已经进入 foo 并且我的观察者在尝试发送第二个通知时被删除。以前有人经历过吗?这可能是什么原因造成的?我不知道如何进一步解决此问题。这看起来很简单。可能是我正在做的其他事情导致了这种情况?如果有人有任何想法,我可以透露更多我的应用程序。

相关代码如下(无参数和范围)

活动

onCreate
  ...
  foo = new Foo();
  foo.addObserver( new FooObserver() );
  ...

class FooObserver implements Observer {
  update()
    updateGUI();

arbitraryMethod()
   ...
   setChanged();
   notifyObservers( argument );
4

1 回答 1

0

我遇到的(令人尴尬的)问题是我有多个 Foo 实例,并且仅将侦听器注册为对象的特定实例,而没有记住我已经创建了该对象的多个实例,这就是 Observers 数组为空的原因第一次更新后;我在看一个不同的对象!

对此有很多解决方案,但在我的情况下,一个可行的方法是使对象成为单例。

于 2012-08-11T04:56:26.003 回答