如何删除为每个视图项创建的多个侦听器?
array(30) {
["2017-05-01"]=>
array(3) {
["project"] => "kompan" , ["hours"] => string(1) "2"
["project"] =>"5 ogrodow" , ["hours"] => string(1) "3"
["project"] => "karolowo" , ["hours"] => string(1) "4"
},
...
}
重新打开应用程序后,它将为viewHolder中的每个项目创建一个新的侦听器。我如何在onDestroy内部取消所有内容?
答案 0 :(得分:0)
要解除多个listeners
,您可以使用以下方法:
public static void removeValueEventListener(HashMap<DatabaseReference, ValueEventListener> hashMap) {
for (Map.Entry<DatabaseReference, ValueEventListener> entry : hashMap.entrySet()) {
DatabaseReference databaseReference = entry.getKey();
ValueEventListener valueEventListener = entry.getValue();
databaseReference.removeEventListener(valueEventListener);
}
}
不要忘记根据你的活动生命周期使用这种方法:
removeValueEventListener(hashMap);