To remove a ValueEventListener, you can do the following:
Remove listener anonymity.
Change the code:
Ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { } @Override public void onCancelled(DatabaseError databaseError) { } });
in it:
ValueEventListener listener= new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { } @Override public void onCancelled(DatabaseError databaseError) { } }); Ref.addValueEventListener(listener);
Now you can remove the listener:
@Override public void onDestroy() { if (Ref != null && listener != null) { Ref.removeEventListener(listener); } }
You need to remove it so that the listener does not remain included in other action life cycles such as onDestroy()
Peter Haddad
source share