2010-07-15 55 views
0

我正在构建一个使用内容观察者的应用程序。 我的问题是,我倾向于注册我的内容观察员多个 次。这导致我的应用程序多次记录事件。 如果我的内容观察员已经注册,我该如何发现?检查注册内容观察员

回答

1

优于从不迟到......

AFAIK你不能检查内容观察者是否被注册,所以我用一个HashMap来存储观察员和具有恒定为每一个观看类型,以检查是否需要被注册。你也可以使用你正在注册的URI作为密钥...

+0

除此之外,我意识到我的hashmap没有保存在内存中,所以我做了一个静态同步类来跟踪注册的内容。有没有人有更好的解决方案? – roflharrison 2011-01-13 08:19:40

+1

嗨,我发现了一个解决方案,可以正常工作。 contentobserver驻留在服务中,并且对观察者的引用保留为服务的属性。通过使属性为静态,它将在服务的实例之间共享。如果它为空,则内容监视器未被注册并且服务被允许注册观察者。如果该属性不为空,则该服务的其他实例没有注册该内容观察者。我的解决方案对我的情况非常具体。看来你的解决方案更通用。感谢你的回答 :-) – Frederik 2011-11-02 12:15:16