Savedstate

プロセスの終了時に UI の状態を保存し、プロセスの再開時にその状態を復元するプラグイン可能なコンポーネントを作成します。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2024 年 8 月 7 日 1.2.1 - - 1.3.0-alpha01

依存関係の宣言

SavedState への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.2.1"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.2.1"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.2.1")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.2.1")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.3

バージョン 1.3.0-alpha01

2024 年 8 月 7 日

androidx.savedstate:savedstate:1.3.0-alpha01androidx.savedstate:savedstate-ktx:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください。

API の変更

  • savedstate-ktx Kotlin 拡張機能がベース savedstate モジュールに移動されました。(I1cc18b/274803094)。

  • compileSdk を 35 に更新(5dc41be

バージョン 1.2.1

バージョン 1.2.1

2023 年 3 月 22 日

androidx.savedstate:savedstate:1.2.1androidx.savedstate:savedstate-ktx:1.2.1 がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください

依存関係の更新

バージョン 1.2.0

バージョン 1.2.0

2022 年 6 月 29 日

androidx.savedstate:savedstate:1.2.0androidx.savedstate:savedstate-ktx:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください

1.1.0 以降の重要な変更

  • SavedStateRegistryController で、performAttach() による SavedStateRegistry の早期アタッチメントが可能になりました。
  • getSavedStateProvider() を介して、以前に登録した SavedStateProviderSavedStateRegistry から取得できるようになりました。
  • SavedState ライブラリが Kotlin で書き換えられました。
    • SavedStateRegistryOwner の場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前の getSavedStateRegistry() 関数を実装する代わりに、savedStateRegistry プロパティをオーバーライドする必要があります。
    • ViewTreeSavedStateRegistryOwner の場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前に設定したオーナーを設定、確認するには、androidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwnerView で Kotlin 拡張メソッドを直接インポートして使用する必要があります。これは、findViewTreeSavedStateRegistryOwnersavedstate-ktx API に代わるものです。

動作の変更

  • SavedStateRegistry は、保存する状態がない場合に空のバンドルを保存しなくなりました。

バージョン 1.2.0-rc01

2022 年 5 月 11 日

androidx.savedstate:savedstate:1.2.0-rc01androidx.savedstate:savedstate-ktx:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください

ドキュメントの変更

  • SavedStateRegistryOwner の Kdocs を更新し、インターフェースを実装する方法や SavedStateRegistryController でメソッドを呼び出すタイミングに関するオーナーの責任と契約を明確にしました。(Iefc95b/228887344

バージョン 1.2.0-beta01

2022 年 4 月 20 日

androidx.savedstate:savedstate:1.2.0-beta01androidx.savedstate:savedstate-ktx:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください

API の変更

  • SavedStateRegistryViewTreeSavedStateRegistryOwner の各クラスが Kotlin で書き換えられました。ViewTreeSavedStateRegistryOwner の場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前に設定したオーナーを設定、確認するには、androidx.savedstate.setViewTreeSavedStateRegistryOwnerandroidx.savedstate.findViewTreeSavedStateRegistryOwnerView で Kotlin 拡張メソッドを直接インポートして使用する必要があります。これは、findViewTreeSavedStateRegistryOwnersavedstate-ktx API に代わるものです。Java プログラミング言語で記述された実装に対して、バイナリ互換性があり、ソース互換性を維持しています。(b/220191285

バージョン 1.2.0-alpha02

2022 年 4 月 6 日

androidx.savedstate:savedstate:1.2.0-alpha02androidx.savedstate:savedstate-ktx:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • getSavedStateProvider() を介して、以前に登録した SavedStateProviderSavedStateRegistry から取得できるようになりました。(I7ea47b/215406268

API の変更

  • SavedStateRegistryOwnerSavedStateRegistryControllerRecreator の各クラスが Kotlin で書き換えられました。SavedStateRegistryOwner の場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前の getSavedStateRegistry() 関数を実装する代わりに、savedStateRegistry プロパティをオーバーライドする必要があります。Java プログラミング言語で記述された実装と、バイナリ互換性およびソース互換性があります。(b/220191285

バージョン 1.2.0-alpha01

2022 年 1 月 26 日

androidx.savedstate:savedstate:1.2.0-alpha01androidx.savedstate:savedstate-ktx:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • SavedStateRegistryController で、performAttach() による SavedStateRegistry の早期アタッチメントが可能になりました。(Ice4bf

動作の変更

  • SavedStateRegistry は、保存する状態がない場合に空のバンドルを保存しなくなりました。(aosp/1896865b/203457956

バージョン 1.1.0

バージョン 1.1.0

2021 年 2 月 10 日

androidx.savedstate:savedstate:1.1.0androidx.savedstate:savedstate-ktx:1.1.0 がリリースされました。バージョン 1.1.0 に含まれるコミットについては、こちらをご覧ください

1.0.0 以降の主な変更

  • ViewTreeSavedStateRegistryOwner API: 新しい ViewTreeSavedStateRegistryOwner.get(View) API を使用すると、View インスタンスを指定して、含まれている SavedStateRegistry を取得できます。これを正しく入力するには、Activity 1.2.0Fragment 1.3.0AppCompat 1.3.0-alpha01 以降にアップグレードする必要があります。
  • savedstate-ktx アーティファクト: 新しい savedstate-ktx アーティファクトと、ViewTreeSavedStateRegistryOwner を操作するための findViewTreeSavedStateRegistryOwner() Kotlin 拡張機能が追加されました。

バージョン 1.1.0-rc01

2020 年 12 月 16 日

androidx.savedstate:savedstate:1.1.0-rc01androidx.savedstate:savedstate-ktx:1.1.0-rc01 がリリースされました。1.1.0-beta01 からの変更はありません。バージョン 1.1.0-rc01 に含まれるコミットについては、こちらをご覧ください

バージョン 1.1.0-beta01

2020 年 10 月 1 日

androidx.savedstate:savedstate:1.1.0-beta01androidx.savedstate:savedstate-ktx:1.1.0-beta01 がリリースされました。1.1.0-alpha01 からの変更はありません。バージョン 1.1.0-beta01 に含まれるコミットについては、こちらをご覧ください

バージョン 1.1.0-alpha01

2020 年 5 月 20 日

androidx.savedstate:savedstate:1.1.0-alpha01androidx.savedstate:savedstate-ktx:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • 新しい ViewTreeSavedStateRegistryOwner.get(View) API を使用すると、View インスタンスを指定して、含まれている SavedStateRegistry を取得できます。これを正しく入力するには、Activity 1.2.0-alpha05Fragment 1.3.0-alpha05AppCompat 1.3.0-alpha01 にアップグレードする必要があります(aosp/1298679)。
  • 新しい savedstate-ktx アーティファクトと、ViewTreeSavedStateRegistryOwner を操作するための findViewTreeSavedStateRegistryOwner() Kotlin 拡張機能が追加されました(aosp/1299434)。

バージョン 1.0.0

バージョン 1.0.0

2019 年 9 月 5 日

androidx.savedstate:savedstate:1.0.0 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

SavedState 1.0.0 の主な機能

androidx.savedstate が安定版リリースに進みました。これは、デベロッパーがコンポーネントを restore / saveInstanceState プロセスにプラグインできるようにする API のセットです。この API のメインのエントリ ポイントは SavedStateRegistry です。consumeRestoredStateForKey を使用して以前に保存された状態を取得する方法を提供し、また registerSavedStateProvider にコールバックを登録して、保存された状態をシステムのリクエストに応じて提供します。

バージョン 1.0.0-rc01

2019 年 7 月 2 日

androidx.savedstate:savedstate:1.0.0-rc01 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

バグの修正

  • 正しくない ProGuard ルールを修正しました(b/132655499

バージョン 1.0.0-beta01

2019 年 5 月 7 日

androidx.savedstate:savedstate:1.0.0-beta01 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

バージョン 1.0.0-alpha02

2019 年 3 月 13 日

androidx.savedstate:savedstate:1.0.0-alpha02 がリリースされました。androidx.savedstate:savedstate は、アーティファクト androidx.savedstate:savedstate-bundleandroidx.savedstate:savedstate-common を組み合わせて 1 つのアーティファクトにします。これは、savedstate インフラストラクチャを簡素化し、SavedStateRegistry からジェネリックを削除することが決まったためです。したがって、個別のモジュールは必要ありません。

このバージョンに含まれるコミットの完全なリストについては、こちらをご覧ください。

新機能

  • SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) が追加されました。指定されたクラスがインスタンス化され、所有するコンポーネントが再起動されると AutoRecreated.onRecreated メソッドが実行されます。

API の変更

  • SavedStateRegistry<T> からジェネリックを削除しました。
  • AbstractSavedStateRegistry と BundlableSavedStateRegistry を削除しました。代わりにシンプルな SavedStateRegistry を使用します。
  • BundleSavedStateRegistryOwner の名前を SavedStateRegistryOwner に変更しました。

バージョン 1.0.0-alpha01

2018 年 12 月 17 日

これは SavedState の最初のリリースです。

新機能

androidx.savedstate は、デベロッパーがコンポーネントを restore / saveInstanceState プロセスにプラグインできるようにする新しいアルファ版 API のセットです。この API のメインのエントリ ポイントは SavedStateRegistry<T> です。consumeRestoredStateForKey を使用して以前に保存された状態を取得する方法を提供し、また registerSavedStateProvider にコールバックを登録して、保存された状態をシステムのリクエストに応じて提供します。