summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 22ac65df4337..1fb28e1969a8 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -3703,13 +3703,19 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
.show(mSplitScreenDividerAnchor);
scheduleAnimation();
} else {
- mAppAnimationLayer.destroy();
+ // At this time mBoostedAppAnimationLayer may be used for animating,
+ // and ResizeableActivity is in it. mBoostedAppAnimationLayer.destroy()
+ // can also destroy the surface of ResizeableActivity, but the surface will
+ // be used after. So change to use transaction to call destroy to delay it,
+ // and ResizeableActivity is not in mBoostedAppAnimationLayer.
+ getPendingTransaction()
+ .destroy(mAppAnimationLayer)
+ .destroy(mBoostedAppAnimationLayer)
+ .destroy(mHomeAppAnimationLayer)
+ .destroy(mSplitScreenDividerAnchor);
mAppAnimationLayer = null;
- mBoostedAppAnimationLayer.destroy();
mBoostedAppAnimationLayer = null;
- mHomeAppAnimationLayer.destroy();
mHomeAppAnimationLayer = null;
- mSplitScreenDividerAnchor.destroy();
mSplitScreenDividerAnchor = null;
}
}