删除在viewHolder中创建的多个Firebase侦听器

时间:2017-05-14 02:02:55

标签: android firebase firebase-realtime-database listener

如何删除为每个视图项创建的多个侦听器?

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内部取消所有内容?

1 个答案:

答案 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);