소스 검색

Fixed crash when unregistering EventBus subsribers

closes #291
Guy Carmeli 8 년 전
부모
커밋
653b0716ff
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4
    1
      android/app/src/main/java/com/reactnativenavigation/events/EventBus.java

+ 4
- 1
android/app/src/main/java/com/reactnativenavigation/events/EventBus.java 파일 보기

@@ -3,6 +3,7 @@ package com.reactnativenavigation.events;
3 3
 import java.lang.ref.WeakReference;
4 4
 import java.util.ArrayList;
5 5
 import java.util.List;
6
+import java.util.ListIterator;
6 7
 
7 8
 public enum EventBus {
8 9
     instance;
@@ -15,7 +16,9 @@ public enum EventBus {
15 16
     }
16 17
 
17 18
     public void unregister(Subscriber subscriber) {
18
-        for (WeakReference<Subscriber> ref : subscribers) {
19
+        ListIterator<WeakReference<Subscriber>> iterator = subscribers.listIterator();
20
+        while (iterator.hasNext()) {
21
+            WeakReference<Subscriber> ref = iterator.next();
19 22
             Subscriber registered = ref.get();
20 23
             if (registered != null && registered == subscriber) {
21 24
                 subscribers.remove(ref);