From 76ed4ddca01ced8ae8eec3255b72b5d9741930a5 Mon Sep 17 00:00:00 2001 From: Erik Wolsheimer Date: Tue, 11 Oct 2016 10:13:23 -0700 Subject: [PATCH] Fix memory leak in Ringtone BUG: 31938615 Change-Id: Ic736f3494b4da95460bdc0cb7857cc9fcc746ab9 --- media/java/android/media/Ringtone.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index c2bcd930dd29..6658e88184b0 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -368,6 +368,7 @@ public class Ringtone { private void destroyLocalPlayer() { if (mLocalPlayer != null) { + mLocalPlayer.setOnCompletionListener(null); mLocalPlayer.reset(); mLocalPlayer.release(); mLocalPlayer = null; @@ -464,11 +465,14 @@ public class Ringtone { } class MyOnCompletionListener implements MediaPlayer.OnCompletionListener { - public void onCompletion(MediaPlayer mp) - { + @Override + public void onCompletion(MediaPlayer mp) { synchronized (sActiveRingtones) { sActiveRingtones.remove(Ringtone.this); } + if (mLocalPlayer != null) { + mLocalPlayer.setOnCompletionListener(null); + } } } } -- 2.11.0