2

その場で特定のフラグメントを追加および削除しています。私の質問は、次のようなフラグメントを削除するかどうかです:

getSupportFragmentManager().beginTransaction().remove(myFragment).commit();

Android がこのフラグメントとそのすべてのリソース (特に画像) をメモリから確実に削除するにはどうすればよいですか? 私にとっては、フラグメント自体がレイアウトから削除されても、親アクティビティが終了するまでメモリに残ります。

4

1 に答える 1

0

Javaオブジェクトがリサイクルされるかどうかをテストするためにできることの1つは、ファイナライズメソッドをオーバーライドすることです(オブジェクト内のオブジェクトを解放する、アンドロイドガベージコレクターへの受け入れられた回答を参照してください )

それはどのように見えるか: フラグメント クラス (またはその他の関心のあるクラス) で

    @Override
protected void finalize() throws Throwable {
    Log.i("Fragment Recycled",this.toString());
    super.finalize();
}

関心のある他のオブジェクトに対しても同じことができます。finalize メソッドがオーバーライドされると、ログ cat を調べて、フラグメントがリサイクルされるかどうかを確認できます。これが役立つことを願っています。

于 2015-07-10T19:03:13.837 に答える