Index: base/android/java/src/org/chromium/base/ApplicationStatus.java |
diff --git a/base/android/java/src/org/chromium/base/ApplicationStatus.java b/base/android/java/src/org/chromium/base/ApplicationStatus.java |
index 37af12d5d779afbd6817949ea8b8278f4e7ce171..d1bd2fb59212c814e20efda98c8113000b98ffa8 100644 |
--- a/base/android/java/src/org/chromium/base/ApplicationStatus.java |
+++ b/base/android/java/src/org/chromium/base/ApplicationStatus.java |
@@ -195,6 +195,13 @@ public class ApplicationStatus { |
ActivityInfo info = sActivityInfo.get(activity); |
info.setStatus(newState); |
+ // Remove before calling listeners so that isEveryActivityDestroyed() returns false when |
+ // this was the last activity. |
+ if (newState == ActivityState.DESTROYED) { |
+ sActivityInfo.remove(activity); |
+ if (activity == sActivity) sActivity = null; |
+ } |
+ |
// Notify all state observers that are specifically listening to this activity. |
for (ActivityStateListener listener : info.getListeners()) { |
listener.onActivityStateChange(activity, newState); |
@@ -212,11 +219,6 @@ public class ApplicationStatus { |
listener.onApplicationStateChange(applicationState); |
} |
} |
- |
- if (newState == ActivityState.DESTROYED) { |
- sActivityInfo.remove(activity); |
- if (activity == sActivity) sActivity = null; |
- } |
} |
/** |