java.lang.ref.FinalizerReference によるメモリリーク 質問する

java.lang.ref.FinalizerReference によるメモリリーク 質問する

com.android.gallery3d を起動し、戻るキーを約 2000 回押すと、java.lang.OutOfMemoryError の例外が発生しました。Android 4.0.4 の com.android.gallery3d のヒープをダンプします。MAT を使用して分析すると、java.lang.ref.FinalizerReference がネストされて呼び出されていることがわかりました。このネストされた呼び出しの原因は何でしょうか?

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

ベストアンサー1

私のアプリケーションではこれらの症状が発生しましたが、メモリ リークに関連していることが判明しました。アクティビティからシングルトン オブジェクトへのコールバックを登録していました。アクティビティの破棄はコールバックの破棄を待っていました。

おすすめ記事