Perdita di memoria causata da java.lang.ref.FinalizerReference

quando lancio com.android.gallery3d e premi il tasto indietro per circa 2000 volte ho ottenuto l’eccezione di java.lang.OutOfMemoryError. Scarica heap di com.android.gallery3d che si trova in Android 4.0.4.Usa MAT per analizzare e trovare java.lang.ref.FinalizerReference è stato chiamato nidificato. Cosa potrebbe causare questo nome annidato?

android.app.ContextImpl @ 0x418f8c98 android.media.AudioManager @ 0x419495c8 android.media.AudioManager$1 @ 0x41949688 java.lang.ref.FinalizerReference @ 0x419496a8 java.lang.ref.FinalizerReference @ 0x419496e8 java.lang.ref.FinalizerReference @ 0x41949800 java.lang.ref.FinalizerReference @ 0x41949848 java.lang.ref.FinalizerReference @ 0x41949890 java.lang.ref.FinalizerReference @ 0x419498d8 java.lang.ref.FinalizerReference @ 0x41949920 java.lang.ref.FinalizerReference @ 0x419499b0 java.lang.ref.FinalizerReference @ 0x419499f8 java.lang.ref.FinalizerReference @ 0x41949a40 java.lang.ref.FinalizerReference @ 0x41949a88 java.lang.ref.FinalizerReference @ 0x41949ad0 java.lang.ref.FinalizerReference @ 0x4194a5a8 java.lang.ref.FinalizerReference @ 0x4194af48 java.lang.ref.FinalizerReference @ 0x4194b878 

Ho avuto questi sintomi nella mia applicazione e si è rivelato essere correlato a una perdita di memoria. Ero solito registrare un callback da un’attività ad un object singleton. La distruzione dell’attività era in sospeso su quella di callback.

Nel mio caso stavo creando un nuovo object (anche se piccolo) nel metodo onDraw sovrascritto del mio SurfaceView personalizzato.