diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java index 385078165e844..86a4fe170387f 100644 --- a/core/java/android/view/SurfaceControlViewHost.java +++ b/core/java/android/view/SurfaceControlViewHost.java @@ -177,6 +177,17 @@ public class SurfaceControlViewHost { mAccessibilityEmbeddedConnection = mViewRoot.getAccessibilityEmbeddedConnection(); } + /** + * @hide + */ + @Override + protected void finalize() throws Throwable { + // We aren't on the UI thread here so we need to pass false to + // doDie + mViewRoot.die(false /* immediate */); + } + + /** * Return a SurfacePackage for the root SurfaceControl of the embedded hierarchy. * Rather than be directly reparented using {@link SurfaceControl.Transaction} this @@ -273,6 +284,6 @@ public class SurfaceControlViewHost { */ public void release() { // ViewRoot will release mSurfaceControl for us. - mViewRoot.die(false /* immediate */); + mViewRoot.die(true /* immediate */); } }