2013-01-18 24 views
5

一部のフラグメントが削除されないため、メモリリークが発生しています。私はフラグメントF1で表示されるアクティビティを持っています。このフラグメントにはViewPagerとFragmentStatePagerAdapterが関連付けられています。アダプターは別のフラグメントF2でページャーを感じています。アクティビティIでフラグメントF1を削除すると問題が発生します。既存のフラグメントF2は削除されません。親フラグメントが削除された場合、FragmentStatePagerAdapterはフラグメントを削除しません。

提案がありますか?

答えて

0

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

2

同じ問題があるのか​​どうかは確かではありませんが、以前はフラグメントライフサイクルメソッドが呼び出されなかったビューパージャに問題がありました。フラグメントマネージャー。

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

0

私はここで同じ問題に直面していました。それを「正しい」方法で修正する方法について長い間研究した後、私はそれを働かせることができませんでした。そこで私は、F2のすべてのフラグメントを明示的に解放してから、自分のアクティビティからフラグメントトランザクションを持つ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フラグメントは、フォームのメモリを解放していると、彼らはまた彼らのOnPauseOnDestroyView ... OnDestroyコールバックも同様に呼び出されたされ始めました。

関連する問題