0
我有一个简单的Android应用程序,其中有一个Observable对象foo的Activity。在我的活动中,我有一个私人内部类实现Observer,它使用传递给更新的参数更新GUI。创建活动时,我将Observer与foo.addObserver连接起来。Android观察者在被通知一次后被删除?
但是,我的观察者只被通知一次,然后它不会收到更多更新。当我尝试发送第二个通知时,我已经步入foo,并且我的观察者被删除。有没有人经历过这个?什么可能导致这个?我不知道如何进一步解决这个问题。这似乎很简单。有可能是我正在做的事情导致这种情况?如果有人有任何想法,我可以透露更多我的申请。
此相关代码如下(没有参数和范围)
活动
onCreate
...
foo = new Foo();
foo.addObserver(new FooObserver());
...
class FooObserver implements Observer {
update()
updateGUI();
富
arbitraryMethod()
...
setChanged();
notifyObservers(argument);
我可以肯定地告诉你,android中没有任何东西会在第一次之后“删除”你的观察者。当你说“已删除”时,你的意思是你的观察员在第一次之后等于空吗?无论如何 - 定位是你的错误 - 你必须发布更多的代码。 – 2012-08-11 04:25:57
好吧,考虑到我的代码更多地进一步解释它之后,我意识到我在不同的地方引用了Foo的不同实例,而不是将该类视为单例(或使用相同的对象)。显然,这是问题的原因。我该怎么处理这个问题?我应该删除它吗? – 2012-08-11 04:39:29
我建议你回答你自己的问题,并说明问题是什么 – 2012-08-11 04:50:03