Explorar o código

0.0.41.beta16..

kongzue %!s(int64=3) %!d(string=hai) anos
pai
achega
33e50f5472

+ 5 - 2
DialogX/src/main/java/com/kongzue/dialogx/interfaces/BaseDialog.java

@@ -90,13 +90,16 @@ public abstract class BaseDialog {
     }
     
     public static void onActivityResume(Activity activity) {
-        if (runningDialogList!=null) {
-            for (BaseDialog baseDialog : runningDialogList) {
+        if (runningDialogList != null) {
+            CopyOnWriteArrayList<BaseDialog> copyOnWriteList = new CopyOnWriteArrayList<>(runningDialogList);
+            for (int i = copyOnWriteList.size() - 1; i >= 0; i--) {
+                BaseDialog baseDialog = copyOnWriteList.get(i);
                 if (baseDialog.getActivity() == activity && baseDialog.isShow && baseDialog.getDialogView() != null) {
                     View boxRoot = baseDialog.getDialogView().findViewById(R.id.box_root);
                     if (boxRoot != null) {
                         log("DialogX: boxRoot is requestFocus.");
                         boxRoot.requestFocus();
+                        return;
                     }
                 }
             }