2010-07-15 77 views
0

我正在構建一個使用內容觀察者的應用程序。 我的問題是,我傾向於註冊我的內容觀察員多個 次。這導致我的應用程序多次記錄事件。 如果我的內容觀察員已經註冊,我該如何發現?檢查註冊內容觀察員

回答

1

優於從不遲到......

AFAIK你不能檢查內容觀察者是否被註冊,所以我用一個HashMap來存儲觀察員和具有恆定爲每一個觀看類型,以檢查是否需要被註冊。你也可以使用你正在註冊的URI作爲密鑰...

+0

除此之外,我意識到我的hashmap沒有保存在內存中,所以我做了一個靜態同步類來跟蹤註冊的內容。有沒有人有更好的解決方案? – roflharrison 2011-01-13 08:19:40

+1

嗨,我發現了一個解決方案,可以正常工作。 contentobserver駐留在服務中,並且對觀察者的引用保留爲服務的屬性。通過使屬性爲靜態,它將在服務的實例之間共享。如果它爲空,則內容監視器未被註冊並且服務被允許註冊觀察者。如果該屬性不爲空,則該服務的其他實例沒有註冊該內容觀察者。我的解決方案對我的情況非常具體。看來你的解決方案更通用。感謝你的回答 :-) – Frederik 2011-11-02 12:15:16