java - 请澄清Observable类中addObserver和deleteObserver的行为?

标签 java android observable ondestroy

一些背景:

我在 Activity 类中创建一个观察者,并将其添加到 Activity 的 onCreate 方法中的 Observable 类中。 Observable 本质上是由 Application 类持有的。我会在 onDestroy 中将其从 observable 中删除。然而,看起来有可能 onDestroy 不会被调用,或者不是 onDestroy 中的所有代码都保证被执行。由于外部类(在可观察对象中)中有对该对象的引用,因此我担心该对象会持续存在。

如果观察者的生命周期超过了 Activity,并且重新创建了 Activity,则将创建另一个具有相同类型的观察者并将其添加到 Observable 中。那么这样的话,现有的同类型的Observer会被删除吗?

我可以通过反复试验找到这个问题,但我在其他地方还没有真正找到这个问题的答案。

tl;博士:

如果我创建两个相同类型的独立观察者类,并将它们都添加到 Java 中的单个 Observable 类中,那么当添加第二个观察者时,java 会替换第一个观察者吗?

引用此文档: http://developer.android.com/reference/java/util/Observable.html

我不清楚是否是这样。

最佳答案

现有观察者不会被删除。你可以在 Observable 的源代码中看到这一点。尽管具有相同的类型,但创建的对象是不同的。它们都被添加到观察者 vector 中。

关于java - 请澄清Observable类中addObserver和deleteObserver的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825480/

相关文章:

java - Android Parcelable final

java - 在 Tomcat 8 应用程序中使用多个连接池时出现命名错误

java - 为什么自定义的ExpandableListView在android中不显示

android - 如何在 ImageView 的同一区域上填充不同的颜色(在 ImageView 的同一区域上填充另一种颜色)?

angular - 如何在 Angular 6 中使用参数创建 observable?

java - 需要有关未经检查的操作java的帮助

java - 跨 Activity 的sharedPreferences上下文空指针

java - 如何使用Java洗牌(尝试使用hashmap,不起作用)?

angular - 如何在 Angular 2 中将多个 Observable 组合在一起

android - 结合 Observables 并行运行