Fix memory leak in Ringtone
am: 76ed4ddca0
Change-Id: I7c1167593ba2cc960dbb0b57385c574f5c22f2ad
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java
index c2bcd93..6658e88 100644
--- a/media/java/android/media/Ringtone.java
+++ b/media/java/android/media/Ringtone.java
@@ -368,6 +368,7 @@
private void destroyLocalPlayer() {
if (mLocalPlayer != null) {
+ mLocalPlayer.setOnCompletionListener(null);
mLocalPlayer.reset();
mLocalPlayer.release();
mLocalPlayer = null;
@@ -464,11 +465,14 @@
}
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);
+ }
}
}
}