私はそれを探していて、見つけたのはそれらの違いだけでした。そして、それはポイントではありません。FragmentStatePagerAdapterの代わりにFragmentPagerAdapterを使用するのはなぜですか?
FragmentStatePagerAdapter
をViewPager
に入力すると、FragmentPagerAdapter
の場合と同じ結果が得られますが、メモリ消費は非常に少なくなります。それが真実なら、どうして私はFragmentPagerAdapter
を使うべきですか?
FragmentPagerAdapter
を使用する利点は何ですか?
'FragmentStatePagerAdapter'を使うとガベージコレクションへの影響は分かりません。なぜなら、フラグメント全体をメモリに保持していないからです。 'FragmentPagerAdapter'はGCに大きな影響を与えますか? –
@LennonPetrick: 'FragmentPagerAdapter'は* memory *に大きな影響を与えます。 'FragmentStatePagerAdapter'は* GC *に大きな影響を与えます。私たちは10ページあるとします。ユーザーは退屈で、最初のページからすべてのページを最後までスワイプし、最初にスワイプします。 'FragmentPagerAdapter'は10個のフラグメントを作成して保持しますので、メモリ圧を上げてください。しかし、「FragmentStatePagerAdapter」は途中で〜14個のフラグメントを作成して破棄し、レイアウトを膨らませて余分な作業をし、GCのプレートに多くのゴミを投棄します。 – CommonsWare
'FragmentStatePagerAdapter'はすべてを破壊して作成しているので、フラグメントを破棄するたびに、そのすべてのガーベジがGCに直接ダンプされます。 すばらしい説明!!どうもありがとうございました!! –