diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index aaa51615bbb9a..11d2bb57bf47d 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1652,6 +1652,13 @@ class ActivityStack extends ConfigurationContai void addToStopping(ActivityRecord r, boolean scheduleIdle, boolean idleDelayed) { if (!mStackSupervisor.mStoppingActivities.contains(r)) { mStackSupervisor.mStoppingActivities.add(r); + + // Some activity is waiting for another activity to become visible before it's being + // stopped, which means that we also want to wait with stopping this one to avoid + // flickers. + if (!mStackSupervisor.mActivitiesWaitingForVisibleActivity.isEmpty()) { + mStackSupervisor.mActivitiesWaitingForVisibleActivity.add(r); + } } // If we already have a few activities waiting to stop, then give up