私のアプリには特別なフローがありますので、いつでも断片をメモリに保存しておく必要があります(メモリが逼迫している場合はOKですその断片が解放されることになる)。Androidで断片フローを完全に管理する
これまでのところ、現在のフラグメントの置換に成功しましたが、以前のフラグメントが常に破棄されることがあるため、(たとえばアクションバーを使用して)元のフラグメントに戻すと、再作成され、それには時間がかかります。
私は断片代わりの活動を使用する理由は、などのアクションバー、同じコンテナ内の複数の断片を置く能力は、非柔軟な活動 - テントの使用、の素敵な使い方です...
私が "Back"スタックを使用しない理由は、フローが変わる可能性があるので、どのフラグメントからでもフラグメントに行きたいということです。
ここに私のコードの抜粋です:
Fragment fragment=... ; //get the fragment from cache or create if not available yet...
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.mainActivity_fragmentContainer, fragment).commit();
私もViewPagerを使用しようとしましたが、私はスライド効果を持っている必要はありませんので、(あなたが他のフラグメントにスライドすることを可能にする)とするのでフラグメントの1つに既にviewPagerが含まれていると、障害になります。メインのviewPagerでスライディングエフェクトを無効にすると、もう一方のビューでは無効になります。
ところで、私はネイティブAPIではなくフラグメントにアンドロイドサポートライブラリを使用しています。
、私の質問は: 速度を最大化し、断片のために使用されてあまりにも多くのメモリを回避しながら、どのように私は、に行くためにフラグメントの完全な制御を達成することができますか?
EDIT: 今のところは、私は次の回避策を使用します。 をonDestroyViewために、私が作成したビューの親を取り、そこから作成されたビューを削除します。
onCreateViewの場合、すでに作成済みのビューが既に存在する場合は、それを返します。
しかし、私はそれが奇妙な問題を引き起こす可能性があるので、私はフラグメントの管理方法がわからないので、非常に危険なことだと思います。プラス、私はアンドロイドがメモリが少ないと判断した場合にはどうなるのか分からない - 未使用のフラグメント(良い)を破棄するか、メモリ不足の例外(悪い)を破棄しますか?
どこがあなたの質問ですか?どのように我々は助けることができます?フラグメントが作成されるのは遅れですか?フラグメントが表示されるのに必要な基礎となるデータの作成を確認しましたか? – user387184
更新された質問。ごめんなさい 。 –