diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index e034b824dc506..232e13d121895 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -1634,6 +1634,8 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D * @param markFrozenIfConfigChanged Whether to set {@link ActivityRecord#frozenBeforeDestroy} to * {@code true} if config changed. * @param deferResume Whether to defer resume while updating config. + * @return 'true' if starting activity was kept or wasn't provided, 'false' if it was relaunched + * because of configuration update. */ boolean ensureVisibilityAndConfig(ActivityRecord starting, int displayId, boolean markFrozenIfConfigChanged, boolean deferResume) { @@ -1644,6 +1646,11 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */, false /* preserveWindows */, false /* notifyClients */); + if (displayId == INVALID_DISPLAY) { + // The caller didn't provide a valid display id, skip updating config. + return true; + } + // Force-update the orientation from the WindowManager, since we need the true configuration // to send to the client now. final Configuration config = mWindowManager.updateOrientationFromAppTokens(