しばらくの間この問題を検索していました。バックスタックから復元されたフラグメントを特定する方法
フラグメントがバックスタックから復元されていますか? 私は、FragmentActivity内で互換性ライブラリとListFragmentを使用しています。 ListFragment内の項目が選択されると、新しいFragmentが開始され、ListFragmentが置き換えられます。
私は、FragmentActivityが一時停止すると、FragmentのonSaveInstanceStateが呼び出されることに気付きました。しかし、フラグメントがFragmentTransactionを介してバックスタックに置かれると、onSaveInstanceStateは呼び出されず、onCreateViewおよびonActivityCreatedのライフサイクルメソッドがnull savedInstanceState Bundleで呼び出されます。
フラグメントが作成または復元されたときにデータをロードしたいが、ユーザーが戻ったときにデータをロードしたいので、これを求めている。バックスタック。
私はHow to check if Fragment was restored from a backstack? を見てきましたが、これが答えを促すことを希望して詳細を追加したいと思います。
編集: はちょうど
注しかしhttp://developer.android.com/reference/android/app/Fragment.html#onSaveInstanceState(android.os.Bundle) が言うに気づい:このメソッドは、onDestroy()の前にいつでも呼び出すことができます。フラグメントが大部分(例えば、UIが表示されていないバックスタックに置かれたときなど)破棄されることが多いが、所有アクティビティが実際にその状態を保存する必要があるまで、その状態は保存されない。
のでonSaveInstanceStateは
この質問にはほとんど更新したように、私はそれが互換ライブラリの癖が原因で、より多くのを疑っています。まだ3.0以上のデバイスでテストケースを実行しようとしていませんでした。 – dvd
'onCreate()'にデータをロードするためにサーバコールを置かないのはなぜですか?おそらく、それはあなたの問題を軽減するでしょう。私はこの特定のメソッドは、フラグメントがバックスタックから復元されたときに呼び出されないと考えています。 – Abhijit