検索

ホームページ  >  に質問  >  本文

android - Replace Fragment を繰り返すとメモリ リークが発生するのはなぜですか?

写真のように、下の2つのボタンをクリックすると、REPALCE上にFragmnetが2つあり、切り替えを繰り返すとメモリリークが発生しました

これはフラグメントのコードです:

リーリー

これはアクティビティのコードの一部です

リーリー

繰り返し切り替えを行った場合のメモリの状態です:

これは LOGCAT です。onDestroy が実行され、Fragment ライフサイクル全体が即座に終了することがわかります。 リーリー

それでは、なぜ彼が占めていた記憶がまだそこにあるのでしょうか?

質問 2:

実験用に JAVA で一定量のメモリを割り当てる方法。ビットマップ メソッドが低すぎるため、そこに CONTEXT が含まれています。
質問 3:

FRAGMENT の使用は避けるべきでしょうか (HIDE/SHOW を使用する方が REPLACE よりも優れていることはわかっています

)
ありがとうございます!

漂亮男人漂亮男人2777日前710

全員に返信(2)返信します

  • 世界只因有你

    世界只因有你2017-05-16 13:34:31

    LeakCanary をコードに統合して、メモリ リークの原因を確認します。
    メモリグラフが上昇しても、それは必ずしもメモリリークを意味するわけではありません。 Bitmapを申請するたびにGCの規格を満たさない場合がありますので、メモリが増え続けても問題ありません。

    返事
    0
  • 某草草

    某草草2017-05-16 13:34:31

    それはフラグメントの問題ではなく、使用するビットマップの問題です

    返事
    0
  • キャンセル返事