删除 Firebase java 中的所有侦听器

Posted

技术标签:

【中文标题】删除 Firebase java 中的所有侦听器【英文标题】:Remove all listeners in Firebase java 【发布时间】:2014-02-27 15:35:53 【问题描述】:

我知道文档说“// 在 Java 中,必须明确删除每个侦听器。”。但有一个问题。

我部署我的应用程序 - 添加一个侦听器(保存指针)。但是当我重新部署我的应用程序时,监听器仍然存在,但我无法删除它,因为我没有指向它的指针。

那么有什么方法可以移除所有的监听器吗? (无需重启服务器)

【问题讨论】:

目前无法删除没有句柄的所有侦听器。我们会考虑在 SDK 的未来版本中添加它。 @Anant 现在仍然如此 - 没有全局删除所有侦听器? 剩下的听众到底有什么问题? 现在还是这样吗?一旦用户在我的应用程序中注销,我只想关闭所有侦听器。 【参考方案1】:

直到现在这仍然适用,因为您不能一次删除所有侦听器。

要检查任何更新,您可以查看此链接:https://firebase.google.com/support/release-notes/android

目前,您可以在onDestroy()内进行操作

protected void onDestroy()
super.onDestroy();
yourdatabasereference.removeEventListener(Listenernamehere);

【讨论】:

什么不起作用?这只会删除Listenernamehere 我删除了事件监听器,但即使在此之后它也会监听数据变化 onDestroy() 是最后一个活动生命周期,这意味着当它被调用时,活动将被销毁。我不确定它是如何监听数据变化的。如果你在onStart() 中添加了监听器,然后删除了onDestroy(),这意味着你离开了活动,所以它不会监听任何变化.. @PeterHaddad 纠正我如果我错了...但是 AddListener 和 RemoveListener 的耦合不应该在 onStart 和 onStop 中。如果它的 onCreate 和 onDestroy 也一样。同样 onPause & onResume ??? 是的@YoApps 这取决于你在哪里添加了监听器,但如果你在onCreate() 中添加它,那么你在onDestroy() 中删除它

以上是关于删除 Firebase java 中的所有侦听器的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.RuntimeException: RESTEASY013050: RESTeasy Provider Factory 为空,您是不是配置了 ResteasyBootstrap 侦

在明确删除之前,SingleValueEvent 侦听器是不是计入 Firebase RealTime DB 中的“同时连接”?

如何从Button的onClick侦听器中删除Firebase DataBase

如何删除 firebase.notifications().onNotificationOpened 监听器?

如何在 OnDestroy 中删除此 firebase 侦听器以减少内存泄漏?

Firebase 停止监听 onAuthStateChanged