diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 9f16a84415331..89a4a13c9bd95 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -4550,6 +4550,13 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A * immediately finishes after, so we have to transfer T to M. */ void transferStartingWindowFromHiddenAboveTokenIfNeeded() { + final WindowState mainWin = findMainWindow(false); + if (mainWin != null && mainWin.mWinAnimator.getShown()) { + // This activity already has a visible window, so doesn't need to transfer the starting + // window from above activity to here. The starting window will be removed with above + // activity. + return; + } task.forAllActivities(fromActivity -> { if (fromActivity == this) return true; return !fromActivity.isVisibleRequested() && transferStartingWindow(fromActivity);