diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 88a38e02de6a6..6e8d0b71353f0 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -968,6 +968,11 @@ class Task extends WindowContainer { final ActivityStack oldStack = ((ActivityStack) oldParent); final ActivityStack newStack = ((ActivityStack) newParent); + // Task is going to be removed, clean it up before detaching from hierarchy. + if (oldParent != null && newParent == null) { + cleanUpResourcesForDestroy(); + } + mStack = newStack; super.onParentChanged(newParent, oldParent); @@ -1012,12 +1017,6 @@ class Task extends WindowContainer { updateOverrideConfigurationFromLaunchBounds(); } - // Task is being removed. - if (oldParent != null && newParent == null) { - cleanUpResourcesForDestroy(); - } - - // Update task bounds if needed. adjustBoundsForDisplayChangeIfNeeded(getDisplayContent());