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