From 08965c03d096a55c57cd010129fa4885a1160b6e Mon Sep 17 00:00:00 2001 From: "[]inger" <[]inger@google.com> Date: Wed, 5 Oct 2016 15:57:08 -0700 Subject: [PATCH] Avoid memory leaks by removing callbacks from surface when SimpleExoPlayer is released. Without this developers which reuse a SurfaceHolder with multiple instances of SimpleExoPlayer need to call simpleExoPlayer.setVideoSurfaceHolder(null) to get the SimpleExoPlayer.ComponentListener removed from the surface holder. If they don't, the component listener is still registered and as a member class leaks an instance of simpleExoPlayer. Issue #1855 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=135292439 --- .../main/java/com/google/android/exoplayer2/SimpleExoPlayer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/library/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 5eda502da5f..9d05500dd61 100644 --- a/library/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -456,6 +456,7 @@ public void stop() { @Override public void release() { player.release(); + removeSurfaceCallbacks(); } @Override