diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 8f2e60ec1f080..746bc0eaff3c7 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -4761,14 +4761,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A supportsEnterPipOnTaskSwitch = false; break; case RESUMED: - // If the app is capable of entering PIP, we should try pausing it now - // so it can PIP correctly. - if (deferHidingClient) { - getRootTask().startPausingLocked( - mStackSupervisor.mUserLeaving /* userLeaving */, - false /* uiSleeping */, null /* resuming */, "makeInvisible"); + // Do nothing if currently in the process of resuming the activity. Otherwise, + // starting to pause it since it is not visible. + if (task.mInResumeTopActivity + && task.topRunningActivity(true /* focusableOnly */) == this) { break; } + getRootTask().startPausingLocked(mStackSupervisor.mUserLeaving, + false /* uiSleeping */, null /* resuming */, "makeInvisible"); + // fall through case INITIALIZING: case PAUSING: case PAUSED: