diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 67043dbab6a38..944331755e4bd 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -4893,6 +4893,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // getting visible so we also wait for them. forAllWindows(mWmService::makeWindowFreezingScreenIfNeededLocked, true); } + // dispatchTaskInfoChangedIfNeeded() right after ActivityRecord#setVisibility() can report + // the stale visible state, because the state will be updated after the app transition. + // So tries to report the actual visible state again where the state is changed. + if (task != null) task.dispatchTaskInfoChangedIfNeeded(false /* force */); ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "commitVisibility: %s: visible=%b mVisibleRequested=%b", this, isVisible(), mVisibleRequested);