Savedstate
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2025 年 10 月 22 日 | 1.3.3 | 1.4.0-rc01 | - | - |
依存関係の宣言
SavedState への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.4
バージョン 1.4.0-rc01
2025 年 10 月 22 日
androidx.savedstate:savedstate-*:1.4.0-rc01 がリリースされました。1.4.0-beta01 からの変更はありません。バージョン 1.4.0-rc01 には、これらの commit が含まれています。
バージョン 1.4.0-beta01
2025 年 10 月 8 日
androidx.savedstate:savedstate-*:1.4.0-beta01 がリリースされました。前回のアルファ版からの重要な変更はありません。バージョン 1.4.0-beta01 にはこれらの commit が含まれています。
バージョン 1.4.0-alpha03
2025 年 8 月 27 日
androidx.savedstate:savedstate-*:1.4.0-alpha03 がリリースされました。バージョン 1.4.0-alpha03 には、これらの commit が含まれています。
API の変更
encodeToSavedStateとdecodeFromSavedStateで nullable 型のサポートを追加しました。(I79062、b/439527454)- Compose を 1.9.0 に更新します。(I2b9de)
バージョン 1.4.0-alpha02
2025 年 8 月 13 日
androidx.savedstate:savedstate-*:1.4.0-alpha02 がリリースされました。バージョン 1.4.0-alpha02 には、これらの commit が含まれています。
バージョン 1.4.0-alpha01
2025 年 7 月 30 日
androidx.savedstate:savedstate-*:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 には、これらの commit が含まれています。
API の変更
SavedStateRegistryOwner.savedで null 許容型をネイティブにサポートし、null 許容プロパティの保存と復元を簡素化しました。(Ia632、b/421325690)
バージョン 1.3
バージョン 1.3.3
2025 年 9 月 17 日
androidx.savedstate:savedstate-*:1.3.3 がリリースされました。バージョン 1.3.3 にはこれらの commit が含まれています。
バグの修正
- Compose コンパイラ プラグインが適用されず、
SavedStateKMP アーティファクトが破損する原因となっていたエラーを修正しました。(Id2290、b/443965665)
バージョン 1.3.2
2025 年 8 月 27 日
androidx.savedstate:savedstate-*:1.3.2 がリリースされました。バージョン 1.3.2 にはこれらの commit が含まれています。
新機能
- SavedState
*-composeアーティファクトに新しい Kotlin マルチプラットフォーム(KMP)ターゲットを追加しました。Lifecycle は、JVM(Android とデスクトップ)、ネイティブ(Linux、iOS、watchOS、macOS、MinGW)、ウェブ(JavaScript、WasmJS)の各プラットフォームをサポートするようになりました。(/Idcf26)
バージョン 1.3.1
2025 年 7 月 16 日
androidx.savedstate:savedstate-*:1.3.1 がリリースされました。バージョン 1.3.1 にはこれらの commit が含まれています。
バグの修正
- アノテーションでサポートされているすべての KMP ターゲットを
SavedStateアーティファクトに追加します。 SavedStateアーティファクトに新しい Kotlin マルチプラットフォーム(KMP)ターゲットを追加しました。SavedStateは現在、JVM(Android とデスクトップ)、ネイティブ(Linux、iOS、watchOS、macOS、MinGW)、ウェブ(JavaScript、WasmJS)の合計 3 つのプラットフォームをサポートしています。Compose 1.9 の安定版リリースに依存するため、*-composeアーティファクトに新しい KMP ターゲットは追加されていません。(I062f4)。
バージョン 1.3.0
2025 年 5 月 7 日
androidx.savedstate:savedstate-*:1.3.0 がリリースされました。バージョン 1.3.0 にはこれらの commit が含まれています。
1.2.0 以降の重要な変更
- Compose ベースのヘルパー API を Compose UI の外部で使用できるように、
LocalSavedStateRegistryOwnerが Compose UI から新しいsavedstate-composeモジュールに移動しました。Compose UI1.9.0-alpha02以降を使用する場合は常に使用する必要がありますが、下位互換性があるため、Compose のすべてのバージョンで使用できます。 savedstate-ktxKotlin 拡張機能がベースの savedstate モジュールに移動されました。findViewTreeSavedStateRegistryOwnerを介して取得されたSavedStateRegistryOwnerインスタンスを、ビューの分離された親(ViewOverlayなど)を介して解決できるようになりました。分離ビューの親の詳細については、core のリリースノートまたはViewTree.setViewTreeDisjointParentのドキュメントをご覧ください。
Kotlin マルチプラットフォーム
SavedStateモジュールが KMP に対応しました。サポートされているプラットフォームに、Android、iOS、Linux、Mac、JVM デスクトップ環境が追加されました。KMP でアプリケーションの状態を保存および復元する一貫した方法を提供するための抽象化として、
SavedState不透明型を導入します。保存する状態を変更するためのSavedStateReaderとSavedStateWriterが含まれています。Android では、SavedStateはBundleの型エイリアスであり、バイナリ互換性を確保し、既存の API を共通のソースセットに移行しやすくします。他のプラットフォームでは、SavedStateはMap<String, Any>インスタンスです。// Create a new SavedState object using the savedState DSL: val savedState = savedState { putInt("currentPage", 1) putString("filter", "favorites") } // Read from a SavedState object val currentPage = savedState.read { getInt("currentPage") } // Edit an existing SavedState object savedState.write { remove("currentPage") }
KotlinX シリアル化のサポート
SavedStateに KotlinX シリアル化のサポートが追加されました。@Serializableでアノテーションが付けられたクラスは、メソッドencodeToSavedStateとdecodeFromSavedStateを使用してSavedStateに変換できます。返されるSavedStateは Android の通常のBundleであり、Bundleを受け入れる API で使用できます。@Serializable data class Person(val firstName: String, val lastName: String) fun main() { val person = Person("John", "Doe") val encoded: SavedState = encodeToSavedState(person) val decoded: Person = decodeFromSavedState(encoded) }ほとんどの型(プリミティブ型など)は構成なしで直接サポートされますが、
@Serializable(with = ___:class)で使用できる追加のシリアライザーは、savedstateモジュールのandroidx.savedstate.serialization.serializersパッケージとsavedstate-composeモジュールのandroidx.savedstate.compose.serialization.serializersパッケージにあります。また、遅延プロパティ委任である
savedも含まれており、SavedStateRegistryOwnerに@Serializableクラスを簡単に保存できます(例:ComponentActivity、Fragmentなど)を定義し、プロセスが終了して再作成されたときに、これらのクラスが自動的に復元されるようにします。savedデリゲートは遅延評価されるため、アクセスされるまでinitラムダを呼び出したり、SavedStateRegistryに何も保存したりしないことに注意してください。@Serializable data class Person(val firstName: String, val lastName: String) class MyActivity : ComponentActivity() { var person by saved { Person("John", "Doe") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.person = Person("Jane", "Doe") } }Lifecycle
2.9.0で追加されたSavedStateHandleの同様のsavedプロパティ委任があります。
バージョン 1.3.0-rc01
2025 年 4 月 23 日
androidx.savedstate:savedstate-*:1.3.0-rc01 がリリースされました。バージョン 1.3.0-rc01 には、これらの commit が含まれています。
バージョン 1.3.0-beta01
2025 年 4 月 9 日
androidx.savedstate:savedstate-*:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 には、これらの commit が含まれています。
依存関係の更新
- このライブラリは Kotlin 2.0 言語レベルをターゲットとするようになり、KGP 2.0.0 以降が必要になりました。(Idb6b5)
バージョン 1.3.0-alpha11
2025 年 3 月 26 日
androidx.savedstate:savedstate-*:1.3.0-alpha11 がリリースされました。一般公開されている主な変更点はありません。バージョン 1.3.0-alpha11 にはこれらの commit が含まれています。
バージョン 1.3.0-alpha10
2025 年 3 月 12 日
androidx.savedstate:savedstate-*:1.3.0-alpha10 がリリースされました。バージョン 1.3.0-alpha10 には、これらの commit が含まれています。
新機能
SavedStateReaderのgetコレクションに非具現化メソッド バリアントを追加します。(I0b641、b/399820614)SavedStateConfigurationにencodeDefaultsを追加し、デフォルト値を持つプロパティをエンコードするかどうかをカスタマイズできるようにしました。(I893cc、b/395104517)mutableStateMapOfをサポートするためSnapshotStateMapSerializerを追加しました。(Ie6f19、b/378895074)mutableStateListOfをサポートするためSnapshotStateListSerializerを追加しました。(I4d888、b/378895074)SavedStateReader.getバリアントのgetOrNull代替メソッドを追加これらのメソッドはプリミティブ値を自動的にボックス化します。(I6228c、b/399820614)
API の変更
getOrNull() ?: else()を優先してSavedStateReaderからgetOrElseを削除しました。(I87317、b/399820614)SavedStateReaderメソッドとSavedStateWriterメソッドからinline修飾子を削除しました。(If2a02、b/399820614)- 公開 API から Android 固有の組み込み List シリアライザーと Array シリアライザーを削除(Ida293)
SparseParcelableArraySerializerをSparseArraySerializerに置き換えました(I91de8)- 値の型が戻り値の型と一致しない場合に例外をスローすることで、すべての
SavedStateReader.getの動作を統一(I78c4a、b/399317598) SavedState*DelegatesをSavedState*Delegateに変更しました。(I8589b、b/399629301)SavedStateConfigをSavedStateConfigurationに変更しました。(I043a5、b/399629301)
バージョン 1.3.0-alpha09
2025 年 2 月 26 日
androidx.savedstate:savedstate-*:1.3.0-alpha09 がリリースされました。バージョン 1.3.0-alpha09 にはこれらの commit が含まれています。
新機能
- 組み込み型のフォールバックを追加し、
Bundleでサポートされているすべての型をデフォルトでencodeAsSavedState/decodeFromSavedStateで使用できるようにします。また、@Serializableクラスのプロパティについては、@Contextualアノテーションを使用して使用できるようにします。(Ic01d2) SavedStateConfigでclassDiscriminatorとclassDiscriminatorModeのサポートを含めます。(I69b66、b/395104517)
API の変更
saved()デリゲートにSavedStateConfigパラメータを追加(I39b3a)- 組み込みシリアライザーをシングルトン オブジェクトにします(Ifeee4)
SavedStateConfigプロパティが一般公開され、他のモジュールでこれらの構成を使用できるようになりました。(Ie5f49、b/378897438)MutableStateFlowSerializerとMutableStateSerializerで@Serializer(with = ...)をサポート(I90953)SavedStateReaderにcontentDeepToStringを追加しました(I14d10)
バージョン 1.3.0-alpha08
2025 年 2 月 12 日
androidx.savedstate:savedstate-*:1.3.0-alpha08 がリリースされました。バージョン 1.3.0-alpha08 には、これらの commit が含まれています。
新機能
MutableStateSerializerをlifecycle-viewmodel-composeからsavedstate-composeに移動し、Compose のMutableStateで SavedState シリアル化 API を使用できるようにしました。(I4f690、b/378895074)
API の変更
- 既存の
SavedStateからSavedStateを作成するファクトリ関数を追加します。(I39f9a) androidx.savedstateでArray<SavedState>とList<SavedState>のサポートを追加します。(Idd8a5)- SavedState のエンコード/デコードに
SavedStateConfigオプション パラメータを追加(I6c4c0)
バージョン 1.3.0-alpha07
2025 年 1 月 29 日
androidx.savedstate:savedstate-*:1.3.0-alpha07 がリリースされました。バージョン 1.3.0-alpha07 には、これらの commit が含まれています。
新機能
kotlinx.coroutines.flow.MutableStateFlowをシリアル化するためのMutableStateFlowSerializerを追加します。(I6a892、b/378895070)
API の変更
- オーバーロードされた
SavedStateRegistryOwner.saved()デリゲート関数をデフォルト パラメータに置き換え(Icd1c1) JavaSerializableSerializerとParcelableSerializerを抽象化しました(I268f6)CharSequenceSerializerから汎用T : CharSequenceを削除しました(Ib40bd)
バージョン 1.3.0-alpha06
2024 年 12 月 11 日
androidx.savedstate:savedstate-*:1.3.0-alpha06 がリリースされました。バージョン 1.3.0-alpha06 にはこれらの commit が含まれています。
新機能
SavedStateKMP でIBinder、Size、SizeF、Array<Parcelable>、SparseArray<Parcelable>、Serializable(Android)がサポートされるようになりました。(I1ba94、b/334076622)@Serializable(with = ParcelableSerializer::class)でクラス内の関連フィールドをマークすることで、Bundle でサポートされている Java 型と Android 型のエンコード/デコードに使用できるKSerializerインスタンスを追加します。(I8c10f、I28caf、b/376026712)findViewTreeSavedStateRegistryOwnerを介して取得されたSavedStateRegistryOwnerインスタンスを、ビューの分離された親(ViewOverlayなど)を介して解決できるようになりました。分離ビューの親について詳しくは、core のリリースノートまたはViewTree.setViewTreeDisjointParentのドキュメントをご覧ください。(Iccb33)
API の変更
- 名前付けとパッケージ構成を
SavedStateRegistryOwnerDelegateとより一貫性のあるものにしました(I8c135、b/376026744)
バージョン 1.3.0-alpha05
2024 年 11 月 13 日
androidx.savedstate:savedstate-*:1.3.0-alpha05 がリリースされました。バージョン 1.3.0-alpha05 にはこれらの commit が含まれています。
KotlinX シリアル化のサポート
SavedStateに KotlinX シリアル化のサポートが追加されました。@Serializableでアノテーションが付けられたクラスは、メソッドencodeToSavedStateとdecodeFromSavedStateを使用してSavedStateに変換できます。返されるSavedStateは Android の通常のBundleであり、Bundleを受け入れる API で使用できます。(I6f59f、b/374102924)@Serializable data class Person(val firstName: String, val lastName: String) fun main() { val person = Person("John", "Doe") val encoded: SavedState = encodeToSavedState(person) val decoded: Person = decodeFromSavedState(encoded) }また、
saved(遅延プロパティ委任)も追加し、@SerializableクラスをSavedStateRegistryOwnerに簡単に保存できるようにしました(例:ComponentActivity、Fragmentなど)を保存し、プロセスが終了して再作成されたときに、これらのクラスが自動的に復元されるようにします。savedデリゲートは遅延評価されるため、アクセスされるまでinitラムダを呼び出したり、SavedStateRegistryに何も保存したりしないことに注意してください。(I66739、b/376027806)@Serializable data class Person(val firstName: String, val lastName: String) class MyActivity : ComponentActivity() { var person by saved { Person("John", "Doe") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.person = Person("Jane", "Doe") } }Lifecycle
2.9.0-alpha07で追加されたSavedStateHandleの同様のsavedプロパティ委任があります。
API の変更
SavedStateにtoMapを追加し、任意のSavedStateを通常のMap(シャロー コピー)に変換できるようにしました。(I487b9、b/334076622)SavedStateKMP が配列をサポートするようになりました。(Ic0552、b/334076622)
バージョン 1.3.0-alpha04
2024 年 10 月 30 日
androidx.savedstate:savedstate-*:1.3.0-alpha04 がリリースされました。バージョン 1.3.0-alpha04 には、これらの commit が含まれています。
API の変更
- SavedState KMP が Char をサポートするようになりました。(I9ac2f、b/334076622)
- SavedState KMP に
putNullとisNullを追加します。(Iea71d、b/334076622) - 初期
Map<String, Any>をサポートする追加のsavedStateファクトリ パラメータを追加(I9b37d、b/334076622) - SavedState KMP が
contentDeepEqualsの比較をサポートするようになりました。(Ia515c、b/334076622) - SavedState KMP が Long をサポートするようになりました。(I4c180、b/334076622)
バージョン 1.3.0-alpha03
2024 年 10 月 16 日
androidx.savedstate:savedstate-*:1.3.0-alpha03 がリリースされました。重要な変更はありません。バージョン 1.3.0-alpha03 には、これらの commit が含まれています。
バージョン 1.3.0-alpha02
2024 年 10 月 2 日
androidx.savedstate:savedstate-*:1.3.0-alpha02 がリリースされました。バージョン 1.3.0-alpha02 には、これらの commit が含まれています。
Kotlin マルチプラットフォーム
SavedStateモジュールが KMP に対応しました。サポートされているプラットフォームに、Android、iOS、Linux、Mac、JVM デスクトップ環境が追加されました。(I26305、b/334076622)
新機能
- KMP でアプリケーションの状態を保存および復元する一貫した方法を提供するための抽象化として、
SavedState不透明型を導入します。保存する状態を変更するためのSavedStateReaderとSavedStateWriterが含まれています。Android では、SavedStateはBundleの型エイリアスであり、バイナリ互換性を確保し、既存の API を共通のソースセットに移行しやすくします。他のプラットフォームでは、SavedStateはMap<String, Any>インスタンスです。(I18575、b/334076622)
// Create a new SavedState object using the savedState DSL:
val savedState = savedState {
putInt("currentPage", 1)
putString("filter", "favorites")
}
// Read from a SavedState object
val currentPage = savedState.read { getInt("currentPage") }
// Edit an existing SavedState object
savedState.write {
remove("currentPage")
}
API の変更
SavedStateRegistryとSavedStateRegistryControllerが KMP に対応しました。(Id7bb8、b/334076622)SavedState、SavedStateWriter、SavedStateReaderが KMP に対応しました。(I26305、b/334076622)
バージョン 1.3.0-alpha01
2024 年 8 月 7 日
androidx.savedstate:savedstate:1.3.0-alpha01 と androidx.savedstate:savedstate-ktx:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 にはこれらの commit が含まれています。
API の変更
savedstate-ktxkotlin 拡張機能がベースの savedstate モジュールに移動されました。(I1cc18、b/274803094)
注
compileSdkを 35 に更新(5dc41be)
バージョン 1.2.1
バージョン 1.2.1
2023 年 3 月 22 日
androidx.savedstate:savedstate:1.2.1 と androidx.savedstate:savedstate-ktx:1.2.1 がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください。
依存関係の更新
SavedStateが Lifecycle2.6.1に依存するようになりました。(c1f621)
バージョン 1.2.0
バージョン 1.2.0
2022 年 6 月 29 日
androidx.savedstate:savedstate:1.2.0 と androidx.savedstate:savedstate-ktx:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の重要な変更
SavedStateRegistryControllerで、performAttach()によるSavedStateRegistryの早期アタッチメントが可能になりました。getSavedStateProvider()を介して、以前に登録したSavedStateProviderをSavedStateRegistryから取得できるようになりました。SavedStateライブラリが Kotlin で書き換えられました。SavedStateRegistryOwnerの場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前のgetSavedStateRegistry()関数を実装する代わりに、savedStateRegistryプロパティをオーバーライドする必要があります。ViewTreeSavedStateRegistryOwnerの場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前に設定したオーナーを設定、確認するには、androidx.savedstate.setViewTreeSavedStateRegistryOwnerとandroidx.savedstate.findViewTreeSavedStateRegistryOwnerのViewで Kotlin 拡張メソッドを直接インポートして使用する必要があります。これは、findViewTreeSavedStateRegistryOwnerのsavedstate-ktxAPI に代わるものです。
動作の変更
SavedStateRegistryは、保存する状態がない場合に空のバンドルを保存しなくなりました。
バージョン 1.2.0-rc01
2022 年 5 月 11 日
androidx.savedstate:savedstate:1.2.0-rc01 と androidx.savedstate:savedstate-ktx:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください。
ドキュメントの変更
SavedStateRegistryOwnerの Kdocs を更新し、インターフェースを実装する方法やSavedStateRegistryControllerでメソッドを呼び出すタイミングに関するオーナーの責任と契約を明確にしました。(Iefc95、b/228887344)
バージョン 1.2.0-beta01
2022 年 4 月 20 日
androidx.savedstate:savedstate:1.2.0-beta01 と androidx.savedstate:savedstate-ktx:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
SavedStateRegistry、ViewTreeSavedStateRegistryOwnerの各クラスが Kotlin で書き換えられました。ViewTreeSavedStateRegistryOwnerの場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前に設定したオーナーを設定、確認するには、androidx.savedstate.setViewTreeSavedStateRegistryOwnerとandroidx.savedstate.findViewTreeSavedStateRegistryOwnerのViewで Kotlin 拡張メソッドを直接インポートして使用する必要があります。これは、findViewTreeSavedStateRegistryOwnerのsavedstate-ktxAPI に代わるものです。Java プログラミング言語で記述された実装に対して、バイナリ互換性があり、ソース互換性を維持しています。(b/220191285)
バージョン 1.2.0-alpha02
2022 年 4 月 6 日
androidx.savedstate:savedstate:1.2.0-alpha02 と androidx.savedstate:savedstate-ktx:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
getSavedStateProvider()を介して、以前に登録したSavedStateProviderをSavedStateRegistryから取得できるようになりました。(I7ea47、b/215406268)
API の変更
SavedStateRegistryOwner、SavedStateRegistryController、Recreatorの各クラスが Kotlin で書き換えられました。SavedStateRegistryOwnerの場合、これは Kotlin で記述されたクラスのソース互換性のない変更です。以前のgetSavedStateRegistry()関数を実装する代わりに、savedStateRegistryプロパティをオーバーライドする必要があります。Java プログラミング言語で記述された実装と、バイナリ互換性およびソース互換性があります。(b/220191285)
バージョン 1.2.0-alpha01
2022 年 1 月 26 日
androidx.savedstate:savedstate:1.2.0-alpha01 と androidx.savedstate:savedstate-ktx:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
SavedStateRegistryControllerで、performAttach()によるSavedStateRegistryの早期アタッチメントが可能になりました。(Ice4bf)
動作の変更
SavedStateRegistryは、保存する状態がない場合に空のバンドルを保存しなくなりました。(aosp/1896865、b/203457956)
バージョン 1.1.0
バージョン 1.1.0
2021 年 2 月 10 日
androidx.savedstate:savedstate:1.1.0 と androidx.savedstate:savedstate-ktx:1.1.0 がリリースされました。バージョン 1.1.0 に含まれるコミットについては、こちらをご覧ください。
1.0.0 以降の主な変更
ViewTreeSavedStateRegistryOwnerAPI: 新しいViewTreeSavedStateRegistryOwner.get(View)API を使用すると、Viewインスタンスを指定して、含まれているSavedStateRegistryを取得できます。これを正しく入力するには、Activity1.2.0、Fragment1.3.0、AppCompat1.3.0-alpha01以降にアップグレードする必要があります。savedstate-ktxアーティファクト: 新しいsavedstate-ktxアーティファクトと、ViewTreeSavedStateRegistryOwnerを操作するためのfindViewTreeSavedStateRegistryOwner()Kotlin 拡張機能が追加されました。
バージョン 1.1.0-rc01
2020 年 12 月 16 日
androidx.savedstate:savedstate:1.1.0-rc01 と androidx.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-beta01 と androidx.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-alpha01 と androidx.savedstate:savedstate-ktx:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- 新しい
ViewTreeSavedStateRegistryOwner.get(View)API を使用すると、Viewインスタンスを指定して、含まれているSavedStateRegistryを取得できます。これを正しく入力するには、Activity1.2.0-alpha05、Fragment1.3.0-alpha05、AppCompat1.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-bundle と androidx.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 にコールバックを登録して、保存された状態をシステムのリクエストに応じて提供します。