diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 6836e315437c1..aca84a9b3c0c1 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -9402,6 +9402,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean isSyncFinished() { if (!super.isSyncFinished()) return false; if (!isVisibleRequested()) return true; + // Wait for attach. That is the earliest time where we know if there will be an associated + // display rotation. If we don't wait, the starting-window can finishDrawing first and + // cause the display rotation to end-up in a following transition. + if (!isAttached()) return false; // If visibleRequested, wait for at-least one visible child. for (int i = mChildren.size() - 1; i >= 0; --i) { if (mChildren.get(i).isVisibleRequested()) {