diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 699580b2633d4..5bd557df06160 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -2094,9 +2094,6 @@ class ActivityStack extends ConfigurationContainer { final ArrayList activities = task.mActivities; for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { final ActivityRecord r = activities.get(activityNdx); - if (r.finishing) { - continue; - } final boolean isTop = r == top; if (aboveTop && !isTop) { continue; @@ -2112,6 +2109,9 @@ class ActivityStack extends ConfigurationContainer { behindFullscreenActivity, r); } if (reallyVisible) { + if (r.finishing) { + continue; + } if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Make visible? " + r + " finishing=" + r.finishing + " state=" + r.getState()); // First: if this is not the current activity being started, make diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java index 13748cbf8c9c3..31babd04f31d6 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java @@ -30,6 +30,7 @@ import static android.view.WindowManager.TRANSIT_TASK_CLOSE; import static com.android.dx.mockito.inline.extended.ExtendedMockito.any; import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt; +import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeast; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; @@ -866,7 +867,7 @@ public class ActivityRecordTests extends ActivityTestsBase { mActivity.setState(PAUSED, "test"); mActivity.finishIfPossible("test", false /* oomAdj */); - verify(mActivity).setVisibility(eq(false)); + verify(mActivity, atLeast(1)).setVisibility(eq(false)); verify(mActivity.getDisplay().mDisplayContent) .prepareAppTransition(eq(TRANSIT_TASK_CLOSE), eq(false) /* alwaysKeepCurrent */); verify(mActivity.getDisplay().mDisplayContent).executeAppTransition();