【问题标题】:How stop Listening to firebase location in android如何停止在android中收听firebase位置
【发布时间】:2017-05-11 06:13:20
【问题描述】:

如何在 Android 中停止监听 firebase 位置。

我尝试过使用firebaseObj.onDisconnect().cancel();,但没有成功。

【问题讨论】:

    标签: android firebase


    【解决方案1】:

    有一个名为removeEventListener 的方法,您可以调用它来删除特定的事件侦听器。

    您需要传入您希望删除的侦听器,您可以通过以下两种方式之一获得:

    1. 当你已经引用了你的听众时

      ref.addValueEventListener(myLoggingListener);
      ...
      ref.removeEventListener(myLoggingListener);
      
    2. 如果您内联创建侦听器:

      var listener = ref.addValueEventListener(new ValueEventListener() {
                         // implementation of the onDataChange and onCanceled
                     });
      ...
      ref.removeEventListener(listener);
      

    请注意,Firebase's Android guide in the section on retrieving data 对此进行了解释。

    【讨论】:

    • 其实我又实现了ChildEventListener来removeEventListener。现在我传递了用于 addChildEventListener 的 ChildEventListener 的相同引用。成功了,非常感谢:)。
    • 我有 100 多个朋友的聊天应用程序,并且我创建了 100 多个孩子并收听了该应用程序,因此当该用户注销时,我需要删除所有侦听器一次如何执行此操作我需要使用循环?
    • 从指南中,您还可以使用 addListenerForSingleValueEvent 仅侦听单个值事件。
    • 只是让它更清楚。在第二种情况下,数据类型应该是 ValueEventListener 而不是 var。像这样--> ValueEventListener listener = ref.addValueEventListener(new ValueEventListener() { // onDataChange 和 onCanceled 的实现 });
    • 这有什么不同?在性能或效率方面?
    猜你喜欢
    • 2018-12-04
    • 2011-10-17
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多