は、私はいくつかのUI(カップルのテキストボックスとか)でFragment
を作成し、私は、サーバーを照会するAsyncTask
を実行しているイムので、setRetainInstance
を使用(要求は一度だけ送信することができます)と私が必要AsyncTask
の結果だから私の質問は: UI全体でフラグメント全体を保持するのは間違っていますか?私は人々がFragment
を使用してsetRetainInstance
を使用するカップルの例を見ましたが、その余分なものを使用していない何か間違っていますか? setRetainInstance
を使用する際に問題が発生するのはなぜですか?これに関するドキュメントの情報を見つけることができませんでした。setRetainInstanceフラグメント
7
A
答えて
-1
オリエンテーションをロックしている場合は、うまくいくはずです。そうしないと、特定のアクティビティー・インスタンスに関連付けられているウィジェットを保持すると、メモリー・リークが発生する可能性があります。
2
setRetainInstance(true)
を使用しても、回転するとあなたのフラグメントは表示されたままになります(onDestroyView
、次にonCreateView
)。 onDestroyView
を超えるビューへの参照を保持しない限り、古いアクティビティのリークはありません。最良の方法は、onDestroyView
の参照を明示的にnullにすることですが、onCreateView
のコードは一般的にこれらの参照を上書きします。
人々はデータを保持するために別個のフラグメント(ビューなし)を使用するオンライン(いくつかの公式のものを含む)の例が多数あります。上記のことが正しいと仮定すると、これは不要です(リークを防ぐため)。多くの場合、データを処理するだけの責任があり、UIについて心配することのない別個のフラグメントを使用すると、より洗練されたコード/アーキテクチャに終わることがあります。
あなたは、using Eclipse MATを回した後、アクティビティコンテキストがリークしているかどうかを確認できます。
関連する問題
- 1. setRetainInstance
- 2. プレゼンター:setRetainInstance(true)フラグメントで非同期処理を開始するタイミング
- 3. なぜフラグメント#setRetainInstance(boolean)を使用しますか?
- 4. setRetainInstance(true)を使用したフラグメント内のスレッド
- 5. XamarinのSetRetainInstanceが表示されない
- 6. 入れ子になったフラグメントがある場合、setRetainInstance(true)は機能しません
- 7. setRetainInstanceを使用したConfigurationChangesのListAdapterのリスト項目の保持
- 8. setRetainInstanceがアンドロイドの設定変更で動作しません
- 9. フラグメント内のフラグメント
- 10. フラグメント1、フラグメント1〜フラグメント2フラグメント2への活性
- 11. フラグメントとフラグメントの違いアフィニティー
- 12. フラグメントとフラグメントの通信
- 13. フラグメントからフラグメントへEditText
- 14. フラグメントからバックボタン付きフラグメント
- 15. フラグメント内のフラグメントのタブ
- 16. フラグメントから別のフラグメント
- 17. フラグメント通信へのフラグメント
- 18. フラグメント要素のフラグメントonClickメソッド
- 19. フラグメント内のフラグメント内のgetSupportFragmentManager()
- 20. フラグメント「
- 21. フラグメントから対話フラグメント対フラグメントの起動
- 22. フラグメント2番目のフラグメントから最初のフラグメントへのスタックバック
- 23. アクティビティーからフラグメント、別のフラグメントへ移動
- 24. フラグメントにフラグメントを追加する方法
- 25. Android:古いフラグメントから見えるフラグメント
- 26. フラグメント内のフラグメントを使用する
- 27. フラグメントBのフラグメントAのボタンIDにアクセス
- 28. Android:tablayout/viewpagerフラグメントまたはアクティビティ内のフラグメント
- 29. フラグメント内のXamarin埋め込みフラグメント
- 30. フラグメントから他のフラグメントに移動
ただし、フラグメントに関連付けられているウィジェットはありませんか?多分、私はフラグメントがどのように機能するのか分からなかったでしょう。 – Raykud
向きがロックされていても、問題が発生する可能性があります。 Androidは設定変更のためにビューを再作成します。構成の変更は、ディスプレイの回転(通常の場合)、言語の変更、キーボードの着脱などが可能です。画面の回転を考慮しても、問題全体が解決されるわけではありません。 – sstn