4

再作成の処理、インスタンスの状態の保存などを取り除くためにFragment.setRetainInstance()、すべてに使用することは良い習慣ですか? なぜだめですか?FragmentsFragment

4

2 に答える 2

2

常に良いとは限りません。インスタンスを保持することで、古い Android にバックのまったく同じインスタンスを提供するように指示しますFragment。つまり、フラグメントonDestroyは決して呼び出されず、onAttach(ed) および onDetach(ed) になります。

定期的に、方向の変更の結果として異なる画面比率を利用するためにビューをリフローする必要があります (たとえば)。フラグメントの状態を保持することは、フレームワークが「ランドスケープ フレンドリー」を使用しようとしないことを意味します。たとえば、縦向きモードで起動した場合のビュー。

の影響onRetainInstanceは微妙で、特効薬ではありません。注意して使用してください。

于 2012-07-24T10:25:00.413 に答える
2

はい、構成の変更を保持する必要がある場合は、バックスタックにないフラグメントで使用できます。物事を単純にするだけです。

https://stackoverflow.com/a/8550351/1300995も参照してください

于 2012-07-21T19:36:54.647 に答える