diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index 481c3ba24fcad..114a56feaf73e 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -1936,8 +1936,12 @@ public class TaskStack extends WindowContainer implements public boolean setPinnedStackAlpha(float alpha) { // Hold the lock since this is called from the BoundsAnimator running on the UiThread synchronized (mWmService.mGlobalLock) { - getPendingTransaction().setAlpha(getSurfaceControl(), - mCancelCurrentBoundsAnimation ? 1 : alpha); + final SurfaceControl sc = getSurfaceControl(); + if (sc == null || !sc.isValid()) { + // If the stack is already removed, don't bother updating any stack animation + return false; + } + getPendingTransaction().setAlpha(sc, mCancelCurrentBoundsAnimation ? 1 : alpha); scheduleAnimation(); return !mCancelCurrentBoundsAnimation; }