我正在尝试从 Firebase 获取数据,当它完成关闭 Activity 时,Firebase 仍在监听器上工作,我尝试 removeEventListener 但它没有用,我该怎么做?
childEventListener = mOnline.child("Room").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String val = dataSnapshot.getValue(String.class);
opponentPlayers.add(val);
enterOpponentRoom();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
这就是我试图移除监听器的方式
@Override
protected void onStop() {
Log.d("onStop", "called");
mOnline.child("Room").removeEventListener(childEventListener);
super.onStop();
}
最佳答案
使用数据库中的最终路径创建一个 DatabaseReference 变量,在本例中为 mOnline.child("Room")。然后使用此引用添加监听器,然后将其删除。当您尝试使用与添加时相同的“子”方法删除监听器时,会发生一些事情。
关于android - 如何在 Android 中停止 Firebase 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52393036/