アプリケーションの状態を保存して、閉じた状態から再び開いたときに最後のフラグメントが表示され、バックスタックが保持されるようにしたいとします。私は、姿勢変化にとき、またはシステムがonSaveInstanceState()
/onRestoreInstanceState()
を使用する場合にそうであるように(リソースを解放するためにアプリを殺すだけでなく、このような状態にアプリケーションが閉じられるたびに保存したいと思います。アプリケーションのバックスタックをバンドルに保存するにはどうすればよいですか?
これまでのところ私は、以前のフラグメントとその状態をSharedPreferencesに保存して後で復元することで、元のフラグメントとその状態を元に戻すことができましたが、フラグメントバックスタックは保持されないため、アプリケーションをロードして戻るボタンを押してアプリケーションのフローで「アップ」すると、アプリケーションは終了するのではなく終了します。
私がこの時点で必要とするのは、アプリケーションバックスタックにアクセスし、必要に応じてバンドルに保存できることですシステムはで行います。 FragmentManager.saveFragmentInstanceState()
のドキュメントを読んだことがありますが、これを使って目標を達成する方法がわかりません。誰かが私を正しい方向に向けることができますか?
私は、Android互換ライブラリーからのフラグメントの実装を使用しています。
'android:alwaysRetainTaskState'は面白そうです。私が調査する時間があったら、私は報告します。 – howettl