summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorBryce Lee <brycelee@google.com>2022-03-03 14:15:37 -0800
committerBryce Lee <brycelee@google.com>2022-03-08 09:36:01 -0800
commitabfdc8fc382f392854a55cfdbc2b3716e307122b (patch)
treead566053ac885ed77234ab6006a8ee0bb232b203 /core/java/android
parent459d5bd503c11478637a0f61f7c952eda1127e74 (diff)
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
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/service/dreams/DreamService.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index db622d39b785..1fd75e610097 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();
}