ActionBar のタブを使用して UI を操作しています。タブを切り替えるとき、現在アクティビティでタブクリックイベントを管理しており、FragmentManager を使用して必要に応じてアタッチとデタッチを呼び出しています。
フラグメントがアタッチされるたびに、ライフサイクル全体を実行し、新しいビューを作成して、すべてのデータを再度ロードします。onSaveInstanceState と onActivityCreated で指定された Bundle を使用して、GUI 要素 (主にリストのスクロール位置) を更新しています。
これは正常に機能していますが、多くのオーバーヘッドがあります。私の場合、リストには 300 ほどのレコードが含まれている可能性があり、タブを切り替えるときに顕著な遅延が発生します。
速度を上げるために、ルート ビューを onCreateView にクラス変数として保存しています。次に、フラグメントがアタッチされた結果として onCreateView が再度呼び出されると、ルート ビューの非 null 値をテストし、ビューを再膨張させる代わりにそれを返します。この保存されたビューにはまだ適切なデータ セットがあり、この場合はデータの読み込みもバイパスします。もちろん、バックグラウンドで OS によって Fragment が破棄された場合は、ビューとデータを完全に再構築する必要があります。
私の質問は、これが有効なアプローチであるかどうかです。心配するメモリの問題がない限り、マイナス面はありません。