フラグメントを持っていますonCreateView
表示するデータをフェッチするためにバックグラウンドasyn呼び出しを行います。
バックグラウンドコールの結果であるオブジェクトをフラグメントのメンバ変数として保存します。
UIとデータがすべて表示されていて、ホームボタンを押すと背景に移動します。私は、アプリケーションを再開すると、私の断片によって膨らんだUIの中にデータがあります。
これで、次のことについてはわかりません。
1)onSaveInstanceState
にオブジェクトを保存する必要がありますか?
2)どこで復元する必要がありますか? onCreateView
で渡されたバンドルで?
3)データはいつ私のバンドルに保存されますか?私は、今すぐ保存せずにUIからデータを失うことがどのようにわかるのでしょうか?あなたの断片コンストラクタでフラグメントからのインスタンス状態の適切な使用
答えて
、次の行を追加します断片インスタンスが活動を横切って保持されているか否かを 再作成(例えば、構成変更のような)
setRetainInstance(true);
コントロール。
データ(サイズ)によって異なります。
バックスタックにフラグメントを残したいと思いますか?
"home button action"と保持されていないFragmentでは、Parcelableインターフェイスを実装し、onSaveInstanceState()を使用して保存し、onCreateView()/ onCreate()を使用してBundleからデータを復元します。
戻るボタンを認識すると、データが失われます。活動のプロセスが終了し、アクティビティが再作成されたときに フラグメントの状態を復元する必要がある場合には
ホームボタンを押してアプリケーションを開くと、 'onCreateView'は呼び出されません – Jim
それはsetRetainInstance(true)でそのまま動作し、onCreate()はまだ呼び出されます。そして、あなたが保持されたフラグメントを使用する場合、なぜ最初の場所にデータを保存したいのですか? –
はまた活動のように、あなたは バンドルを使用して、フラグメントの状態を維持することができます。 フラグメントのonSaveInstanceState()コールバック の間に状態を保存し、onCreate()、onCreateView()、または onActivityCreated()のいずれかでリストアすることができます。状態の保存の詳細については、 アクティビティ文書を参照してください。
あなたのフラグメントは、表示されるたびにデータをフェッチするように見えます。
非同期フェッチを避けるためにデータを保存する場合は、Bundle
を使用してデータを保存する必要があるonSaveInstanceState
を使用できます。 onCreateView
チェックで次に
savedInstanceState
場合はnull
であり、それがある場合は、非同期はあなたにsavedInstanceState
Bundle
からのデータを再作成するそれ以外の場合は、フェッチありません。
- 1. TFS 2008プロジェクトファイルの不適切な状態
- 2. MassTransit Saga状態からインスタンス状態へのマッピング
- 3. この状態を書く適切な方法
- 4. 適切なスイッチcaseonclicklistenerとフラグメント
- 5. オブジェクトの状態/内容を適切に変更するイテレータの使用法(php)
- 6. Reactを使用してコンポーネント状態の配列を適切に更新する
- 7. 休止状態のJDBCトランザクションを休止状態のトランザクションから切り離す
- 8. フラグメント間の適切な通信方法
- 9. 設定トラッキング状態を呼び出す適切な場所
- 10. LocationSettingsResult - getStatusが設定状態を適切に検出しない
- 11. フラグメントを切り替えるときにフラグメント状態を維持する方法
- 12. アプリケーションからフラグメントの状態を保存する
- 13. Googleスプレッドシートスクリプト、大量のデータに数式を適用した後のインスタンスの状態
- 14. イベントの適切な使用
- 15. strncmpの適切な使用
- 16. RealmRecyclerViewAdapyterの適切な使用
- 17. データテーブルの適切な使用
- 18. flatMapの適切な使用
- 19. call_user_func_arrayの適切な使用
- 20. update_user_metaの適切な使用
- 21. GLKBaseEffectの適切な使用
- 22. FileTreeの適切な使用
- 23. スウィフトガードの適切な使用?
- 24. アサートの適切な使用
- 25. setup_eager_loadingの適切な使用
- 26. 404の適切な使用
- 27. オブジェクトの適切な使用
- 28. クラスインスタンスの適切な使用
- 29. パラメータの適切な使用
- 30. どのような状態を使用する適切な方法です対小道具
したがって、onSaveInstanceStateのバンドルに保存できますが、使用できません。 – Jim