gpt4 book ai didi

android - 没有移除 Firebase DatabaseReference 的事件监听器?

转载 作者:行者123 更新时间:2023-11-29 14:20:24 26 4
gpt4 key购买 nike

嘿,我需要在某个时候移除这个监听器,还是它会自行移除?我在我的 Activity 中的一个 fragment 中调用了这个,用户可以在不破坏这个 View 的情况下转到另一个 View 。因此不确定我是否应该以某种方式在 onDestroyonPause 调用中删除它?我看不到删除它的方法,因为它是 DatabaseReference

代码如下:

private DatabaseReference mDatabase;
mDatabase.child("projects").orderByChild("viewCount").limitToLast(15).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {

最佳答案

正如超人链接显示的答案:您确实需要在相反的生命周期事件中删除监听器。

要删除监听器,您需要保留 handle that is returned when you call addChildListener() :

Query query = mDatabase.child("projects").orderByChild("viewCount").limitToLast(15);
ChildEventListener listener = query.addChildEventListener(new ChildEventListener() { ...

然后 pass it to removeEventListener() :

query.removeChildEventListener(listener);

你可以看到我在这里明确地使用了一个查询,因为这是你实际附加你的监听器的东西。但是,如果您有一个普通的 DatabaseReference,则可以使用相同的方法,因为 DatabaseReference 继承自 Query

关于android - 没有移除 Firebase DatabaseReference 的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com