- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一些背景:
我在 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/
我有以下代码: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillEnt
我从mockito开始,想知道如何假装添加观察者。我想编写一个测试来确保观察者计数在函数调用后增加。 示例测试代码: MyClassUnderTest instance = new MyClassUn
在我的应用程序(游戏)中,当按下中心/主页或锁定按钮时,我试图使用 NSNotificationCenter 暂停和恢复游戏。这是我正在使用的代码: [[NSNotificationCenter de
我尝试使用 NotificationCenter.addObserver(...) 打开本地通知时启用进入特定 View 的功能 我的代码是 override func viewDidLoad() {
在 XCode 5.1(和 CorePlot 1.4)之前,有两个对象可以正常接收 NSNotifications。但是,对于 XCode 5.1.1 (Coreplot 1.5),我发现如果 add
我目前正在为大学开发一款小游戏。我有一个扩展 Observable 并实现接口(interface)的模型。 由于接口(interface)的原因,我每次都必须为我添加的每个观察者重写 addObse
我有多种操作(派生自 NSOperation)通过 Internet 进行异步查询。按照惯例,我通过观察它们的 isFinished 属性来确定它们何时完成。 当一个特定类型的操作完成时,我想使用第一
我正在尝试获取 AVPlayer timedMetadata,但永远不会调用观察者 self.metaItem!.addObserver(self, forKeyPath: "metaData", o
我需要使用 NSNotificationCenter 在新数据来自 WCSession 时更新我,以便我可以填写我的 tableview。 我在列出的每个函数上都设置了断点,但出于某种原因,它直接转到
根据我的理解,addObserver 方法的 object 参数是您要从中接收通知的对象。大多数时候,我将其视为 nil(我假设这是因为所有对象都需要指定类型的通知)。在我的特殊情况下,我在屏幕顶部和
大家好多年阅读 StackOverflow,现在我决定加入。我正在努力解决这个问题: 我有一个“Depot”实体,它有两个对多关系“Persons”和“Trucks”。我想观察在给定“Depot”对象
每当我的 UILabel 中的文本发生更改时,我都会尝试获取通知,以便我可以调整它的大小以适应新文本。这是我的代码: public class MessageContainer : UILabel {
我看过NSNotification addObserver/removeObserver 放在viewDidLoad/viewDidUnload , viewDidAppear/viewDidDisa
所以我有一个像public class Main Implements Observer{}这样声明的函数,里面有主函数public static void main(String[] args) {
我正在尝试创建让我的 View 在键盘打开后移动。但我遇到了一个非常意想不到的问题。 这是我的代码: override func viewDidLoad() { super.viewDidLo
我正在尝试从位置管理器对象向我的 viewController 发出通知。它不起作用 - addObserver 方法中的选择器未被调用。 位置管理器 Object.m 文件(具有标准分派(dispa
有没有办法获取在 NSManagedObject 上使用 addObserver:forKeyPath:options:context: 和选项 NSKeyValueChangeInsertion 添
如何在 SwiftUI 中添加 NotificationCenter.default.addObserve? 当我尝试添加观察者时出现以下错误 Argument of '#selector' refe
我已经看到如何从一些 NotificationCenter 代码使用 Publisher 过渡到 Combine,但还没有看到如何为类似的东西做到这一点: NotificationCe
我习惯于在初始化方法中加入“[NSNotificationCenter defaultCenter] addObserver”。而且我已经看到很多其他人放在 viewDidLoad 中。是否有任何说明
我是一名优秀的程序员,十分优秀!