Чтобы решить эту проблему, я рекомендую вам использовать следующий метод, который можно создать в вашем UIUtils
классе:
public static void removeListener(Map<DatabaseReference, ValueEventListener> map) {
for (Map.Entry<DatabaseReference, ValueEventListener> entry : map.entrySet()) {
DatabaseReference databaseReference = entry.getKey();
ValueEventListener valueEventListener = entry.getValue();
databaseReference.removeEventListener(valueEventListener);
}
}
В вашем классе деятельности, где вам нужно удалить одного или нескольких слушателей, простосоздайте Map
и поместите все ссылки и слушателей, которых вы хотите удалить.Ваша карта должна выглядеть следующим образом:
Map<DatabaseReference, ValueEventListener> map = new HashMap<>();
map.put(referenceOne, listenerOne);
map.put(referenceTwo, listenerTwo);
//You can add as many listeners as you want
А затем просто вызовите метод removeListener
из вашего UIUtils
класса и передайте объект map
в качестве аргумента, подобного этому:
UIUtils.removeListener(map);