3

私は Android アプリを開発していますが、メモリ不足によるクラッシュが頻繁に発生します。DDMS を起動したところ、フラグメントがまったくガベージ コレクションされていないことがわかりました。onDestroy() ですべてのクラス変数を解放し、すべてのイベント リスナーを null に設定していますが、それでもすべてがぶらぶらしています。オブジェクトの最も近いドミネーターを見ると、多くの場合、ドミネーターは ROOT です。これらのフラグメントをガベージ コレクションにするにはどうすればよいですか?

コードを投稿したいと思いますが、これは非常に大きなプログラムであり、問​​題を説明するだけでなく、どちらがより適切かはわかりません。洞察をいただければ幸いです。

ありがとう!

4

1 に答える 1

0

FragmentManager は、すべての Fragment を永久に保持しているようです。Fragments を使い終わったら必ず Fragment を破棄してください。単純にデタッチしてもマネージャーから削除されません。

于 2011-08-22T17:32:12.653 に答える