5

一部のフラグメントが削除されていないため、メモリ リークに直面しています。ビューに Fragment F1 を設定する Activity があります。このフラグメントには、ViewPager と FragmentStatePagerAdapter が関連付けられています。アダプターは、別の Fragment F2 でページャーを感じています。アクティビティで Fragment F1 を削除すると、問題が発生します。既存のフラグメント F2 は削除されません。

助言がありますか?

4

3 に答える 3

2

同じ問題かどうかはわかりませんが、しばらく前に、フラグメント ライフサイクル メソッドが呼び出されず、問題がフラグメント マネージャーにあるビューページャーに問題がありました。

そのため、アダプターを作成するときに、supportFragmentManager の代わりに childFragmentManager を渡してみて、問題が解決するかどうかを確認してください。

于 2013-02-28T00:11:32.417 に答える
0

私はまったく同じ問題を抱えています。フラグメント F1 をアクティビティに戻してみてください。これは、問題がフラグメント内にフラグメントを持つことであるかどうかを判断するのに役立つ場合があります。Androidはそれがあまり好きではありません。私の側で何かを見つけたら、あなたに知らせます

于 2013-01-22T22:11:31.533 に答える
0

ここで同じ問題に直面していました。「正しい」方法でそれを修正する方法について長い間研究した後、私はそれを機能させることができませんでした. そのため、アクティビティから親フラグメント (フラグメント トランザクションを使用) をF2削除する前に、すべての s フラグメントを明示的に解放する必要がありました。F1

// Remove all content from the FragmentStatePagerAdapter instance.
myAdapter.Content.Clear (); // Content here may be an ArrayList in Java or a List in C#.
myAdapter.NotifyDataSetChanged ();

// Reset current empty adapter inside the ViewPager (this will make all existing F2 fragments to be released).
myViewPager.Adapter = myAdapter;

// Do the transaction removing the parent F1 fragment from the main Activity.
FragmentManager.BeginTransaction ()...

これらの手順に従うと、すべてのF2フラグメントがメモリから解放され始め、それらのOnPause, OnDestroyView...OnDestroyコールバックも呼び出されます。

于 2013-11-25T20:51:01.020 に答える