現在、画面内にListViewを持ち、Listの要素はサーバから取得して表示するFragmentを作成しています。
具体的には、最初に企業の大業種の一覧リストからいずれかを選択すると、画面が遷移して、今度は小業種の一覧リストが表示され、最後に該当する企業の一覧が表示された画面へ遷移するというようなイメージです。
大業種も小業種も企業もマスターデータがサーバ上にあり、画面を表示するFragmentのonCreateViewメソッドで表示すべきデータの取得を行う実装をしており、また画面の遷移については、OnItemClickメソッド内で、
lang
1getFragmentManager().beginTransaction() 2 .replace(R.id.container, CompanySmallCategoryFragment.newInstance()) 3 .addToBackStack(null) 4 .commit();
このように、遷移後もバックボタン押下で前の画面に戻れるようにしております。
Fragmentのライフサイクルを考えれば当たり前なのですが、
例えば、小業種一覧画面からバックボタンにより大業種一覧画面に戻った際に、当然再度onCreateViewが呼ばれてしまうため、再度サーバへ大業種データを取得しにいってしまいます。
更新頻度が低いデータのため、何度も同じ情報をサーバと通信するのは無駄なので抑止したいのですが、
このような場合、通常はどのように実装するのが一般的なのでしょうか。
onCreateView内で一度取得したデータをBundle等に詰めて保存しておき、
バックボタンで戻ってきた際はgetArguments()を確認して、保存済みデータがあればそれを再利用というのが王道でしょうか。
もっと効率のよい方法もしくは正しい方法がありましたら、ご教示いただけると幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。