From abfdc8fc382f392854a55cfdbc2b3716e307122b Mon Sep 17 00:00:00 2001 From: Bryce Lee Date: Thu, 3 Mar 2022 14:15:37 -0800 Subject: [PATCH] Clear reference to DreamActivity window. This changelist clears the reference to the DreamActivity window once the activity is cleared in DreamService. Holding onto the reference will lead to a DreamActivity instance leak. Test: verified leak no longer present through hprof Bug: 221285764 Change-Id: I1494bcdeaa1b23c0006867ff8eb1806bd5206eba --- core/java/android/service/dreams/DreamService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index db622d39b7859..1fd75e6100979 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -1341,7 +1341,9 @@ public class DreamService extends Service implements Window.Callback { public void onViewDetachedFromWindow(View v) { if (mActivity == null || !mActivity.isChangingConfigurations()) { // Only stop the dream if the view is not detached by relaunching - // activity for configuration changes. + // activity for configuration changes. It is important to also clear + // the window reference in order to fully release the DreamActivity. + mWindow = null; mActivity = null; finish(); }