diff options
| author | 2016-10-11 18:31:32 +0000 | |
|---|---|---|
| committer | 2016-10-11 18:31:32 +0000 | |
| commit | fdc44dc732ee8900fc597945a9fd4e4a229db757 (patch) | |
| tree | 69d7248a248c75246337b2c91da8a70640c39e15 | |
| parent | 9011f8f92649a792bdc52578e81ef37cdc0eccf1 (diff) | |
| parent | 8d135d53ccaa0545b0d15ffd13edfda3577e8d38 (diff) | |
Fix memory leak in Ringtone am: 76ed4ddca0
am: 8d135d53cc
Change-Id: Ieed5a2e27ba53142ceb02a4e6812509beaabb414
| -rw-r--r-- | media/java/android/media/Ringtone.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index 8ae6e6bda0f2..754fe45c2a06 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -371,6 +371,7 @@ public class Ringtone { private void destroyLocalPlayer() { if (mLocalPlayer != null) { + mLocalPlayer.setOnCompletionListener(null); mLocalPlayer.reset(); mLocalPlayer.release(); mLocalPlayer = null; @@ -467,11 +468,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); + } } } } |