Сохраненное государство
| Последнее обновление | Стабильный релиз | Предварительная версия для выпуска | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 11 марта 2026 г. | 1.4.0 | - | - | 1.5.0-alpha01 |
Объявление зависимостей
Чтобы добавить зависимость от SavedState, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Groovy
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.4.0" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.4.0" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.4.0") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.4.0") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Версия 1.5
Версия 1.5.0-alpha01
11 марта 2026 г.
Выпущена версия androidx.savedstate:savedstate-*:1.5.0-alpha01 . Версия 1.5.0-alpha01 содержит следующие коммиты .
Новые функции
- Включить универсальную сериализацию для объектов
SavedState, позволяющую кодировать и декодировать их с использованием стандартных форматов, таких как CBOR или JSON, на всех платформах. ( Iafda4 , b/425919375 )
Изменения в API
- Добавлены функции расширения
putKotlinSerializableиgetKotlinSerializableкSavedStateWriterиSavedStateReader, позволяющие напрямую сохранять и извлекать объекты Kotlin Serializable с помощью ключей, что упрощает интеграцию с APISavedState. ( Iba02e ) - Добавьте фабричные функции для
LifecycleOwner,ViewModelStoreOwnerиSavedStateRegistryOwner, чтобы уменьшить количество шаблонного кода при создании пользовательских компонентов-владельцев. ( I9682c ) - Включите сохранение и восстановление
SnapshotStateSet(созданного с помощьюmutableStateSetOf()) с помощьюrememberSerializable. Теперь вы можете использоватьSnapshotStateSetвrememberSerializableбез необходимости создания собственного механизма сохранения. ( I9a4ed , b/449498367 )
Версия 1.4
Версия 1.4.0
5 ноября 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.4.0 . Версия 1.4.0 содержит следующие коммиты .
Версия 1.4.0-rc01
22 октября 2025 г.
androidx.savedstate:savedstate-*:1.4.0-rc01 выпущен без изменений по сравнению с версией 1.4.0-beta01. Версия 1.4.0-rc01 содержит следующие коммиты .
Версия 1.4.0-beta01
8 октября 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.4.0-beta01 без существенных изменений по сравнению с последней альфа-версией. Версия 1.4.0-beta01 содержит следующие коммиты .
Версия 1.4.0-alpha03
27 августа 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.4.0-alpha03 . Версия 1.4.0-alpha03 содержит следующие коммиты .
Изменения в API
- Добавить поддержку типов, допускающих значение null, в
encodeToSavedStateиdecodeFromSavedState. ( I79062 , b/439527454 ) - Обновите Compose до версии 1.9.0. ( I2b9de )
Версия 1.4.0-alpha02
13 августа 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит следующие коммиты .
Версия 1.4.0-alpha01
30 июля 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие коммиты .
Изменения в API
- Добавлена встроенная поддержка типов, допускающих значение null, в
SavedStateRegistryOwner.saved, что упрощает сохранение и восстановление свойств, допускающих значение null. ( Ia632 , b/421325690 )
Версия 1.3
Версия 1.3.3
17 сентября 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.3 . Версия 1.3.3 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка, из-за которой не применялся плагин Compose Compiler, что приводило к некорректной работе артефактов
SavedStateKMP. ( Id2290 , b/443965665 )
Версия 1.3.2
27 августа 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.2 . Версия 1.3.2 содержит следующие коммиты .
Новые функции
- Добавлены новые цели Kotlin Multiplatform (KMP) в артефакт SavedState
*-compose. Lifecycle теперь поддерживает следующие платформы: JVM (Android и Desktop), нативные приложения (Linux, iOS, watchOS, macOS, MinGW) и веб-приложения (JavaScript, WasmJS). ( /Idcf26 )
Версия 1.3.1
16 июля 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.1 . Версия 1.3.1 содержит следующие коммиты .
Исправлены ошибки
- Добавьте все поддерживаемые аннотациями цели KMP в артефакты
SavedState. - В артефакты
SavedStateдобавлены новые цели Kotlin Multiplatform (KMP). ТеперьSavedStateподдерживает следующие платформы: JVM (Android и Desktop), нативные приложения (Linux, iOS, watchOS, macOS, MinGW) и веб-приложения (JavaScript, WasmJS). Обратите внимание, что в артефакты*-composeновые цели KMP не добавлены, так как это зависит от стабильной версии Compose 1.9. ( I062f4 ).
Версия 1.3.0
7 мая 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0 . Версия 1.3.0 содержит следующие коммиты .
Важные изменения по сравнению с версией 1.2.0
-
LocalSavedStateRegistryOwnerбыл перенесен из пользовательского интерфейса Compose в новый модульsavedstate-compose, чтобы его вспомогательные API на основе Compose можно было использовать вне пользовательского интерфейса Compose. Его следует всегда использовать при работе с Compose UI1.9.0-alpha02и выше, но он обратно совместим, поэтому его можно использовать со всеми версиями Compose. - Расширения Kotlin
savedstate-ktxтеперь перемещены в базовый модуль savedstate. - Экземпляры
SavedStateRegistryOwnerполученные с помощьюfindViewTreeSavedStateRegistryOwnerтеперь могут быть разрешены через непересекающиеся родительские элементы представления, такие какViewOverlay. Дополнительную информацию о непересекающихся родительских элементах представления см. в примечаниях к выпуску ядра или в документации поViewTree.setViewTreeDisjointParent.
Kotlin Multiplatform
- Модуль
SavedStateтеперь совместим с KMP. Поддерживаемые платформы теперь включают Android, iOS, Linux, Mac и настольные среды JVM. Введен непрозрачный тип
SavedStateв качестве абстракции для обеспечения согласованного способа сохранения и восстановления состояния приложения в KMP. Он включаетSavedStateReaderиSavedStateWriterдля изменения сохраняемого состояния. На AndroidSavedStateявляется псевдонимом типа для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, вSavedStateиспользуя методыencodeToSavedStateиdecodeFromSavedState. ВозвращаемыйSavedStateпредставляет собой обычныйBundleна Android и может использоваться любым API, принимающимBundle.@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)можно найти в пакетеandroidx.savedstate.serialization.serializersв модулеsavedstateи в пакетеandroidx.savedstate.compose.serialization.serializersв модулеsavedstate-compose.Мы также добавили делегат
saved, работающий с ленивыми изменениями свойств, чтобы упростить хранение классов@Serializableв `SavedStateRegistryOwner(например,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добавлен аналогичный делегат дляsavedсвойстваSavedStateHandle.
Версия 1.3.0-rc01
23 апреля 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-rc01 . Версия 1.3.0-rc01 содержит следующие коммиты .
Версия 1.3.0-beta01
9 апреля 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие коммиты .
Обновления зависимостей
- Эта библиотека теперь ориентирована на язык Kotlin 2.0 и требует KGP 2.0.0 или более поздней версии. ( Idb6b5 )
Версия 1.3.0-alpha11
26 марта 2025 г.
Выпущена androidx.savedstate:savedstate-*:1.3.0-alpha11 без существенных изменений в публичном доступе. Версия 1.3.0-alpha11 содержит следующие коммиты .
Версия 1.3.0-alpha10
12 марта 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha10 . Версия 1.3.0-alpha10 содержит следующие коммиты .
Новые функции
- Добавить нереифицированные варианты методов для
getколлекций вSavedStateReader. ( I0b641 , b/399820614 ) - Добавить
encodeDefaultsвSavedStateConfiguration, позволяющий настраивать, следует ли кодировать свойства со значениями по умолчанию. ( I893cc , b/395104517 ) - Добавлена поддержка
mutableStateMapOfвSnapshotStateMapSerializer. ( IE6F19 , b/378895074 ) - Добавлена поддержка
mutableStateListOfвSnapshotStateListSerializer. ( I4d888 , b/378895074 ) - Добавить альтернативные методы
getOrNullдля вариантовSavedStateReader.get. Эти методы будут автоматически упаковывать примитивные значения. ( I6228c , b/399820614 )
Изменения в API
- Удалите
getOrElseизSavedStateReaderи замените его наgetOrNull() ?: else(). ( I87317 , b/399820614 ) - Удалите модификатор
inlineиз методовSavedStateReaderиSavedStateWriter. ( If2a02 , b/399820614 ) - Удалить встроенные сериализаторы списков и массивов, специфичные для Android, из публичного API ( 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
26 февраля 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha09 . Версия 1.3.0-alpha09 содержит следующие коммиты .
Новые функции
- Добавлен резервный вариант для встроенных типов, гарантирующий, что все типы, поддерживаемые
Bundle, могут использоваться сencodeAsSavedState/decodeFromSavedStateпо умолчанию или, для свойств в классах@Serializable, с помощью аннотации@Contextual. ( Ic01d2 ) - Добавить поддержку
classDiscriminatorиclassDiscriminatorModeвSavedStateConfig. ( I69b66 , b/395104517 )
Изменения в API
- Добавить параметр
SavedStateConfigк делегатамsaved()( I39b3a ) - Преобразует встроенные сериализаторы в объекты-одиночки ( Ifeee4 )
- Свойства
SavedStateConfigтеперь являются общедоступными, что позволяет другим модулям использовать эти конфигурации. ( Ie5f49 , b/378897438 ) - Поддержка
@Serializer(with = ...)дляMutableStateFlowSerializerиMutableStateSerializer( I90953 ) - Добавить
contentDeepToStringвSavedStateReader( I14d10 )
Версия 1.3.0-alpha08
12 февраля 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha08 . Версия 1.3.0-alpha08 содержит следующие коммиты .
Новые функции
- Переместить
MutableStateSerializerизlifecycle-viewmodel-composesavedstate-composecompose, что позволит использовать API сериализации SavedState сMutableStateиз Compose. ( I4f690 , b/378895074 )
Изменения в API
- Добавить фабричную функцию для создания
SavedStateиз существующегоSavedState. ( I39f9a ) - Добавляет поддержку
Array<SavedState>иList<SavedState>вandroidx.savedstate. ( Idd8a5 ) - Добавить необязательный параметр
SavedStateConfigк кодированию/декодированию SavedState ( I6c4c0 )
Версия 1.3.0-alpha07
29 января 2025 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha07 . Версия 1.3.0-alpha07 содержит следующие коммиты .
Новые функции
- Добавлен
MutableStateFlowSerializerдля сериализацииkotlinx.coroutines.flow.MutableStateFlow. ( I6a892 , b/378895070 )
Изменения в API
- Замените перегруженные функции делегата
SavedStateRegistryOwner.saved()параметрами по умолчанию ( Icd1c1 ) - Сделать
JavaSerializableSerializerиParcelableSerializerабстрактными ( I268f6 ) - Удалить универсальный
T : CharSequenceизCharSequenceSerializer( Ib40bd )
Версия 1.3.0-alpha06
11 декабря 2024 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha06 . Версия 1.3.0-alpha06 содержит следующие коммиты .
Новые функции
-
SavedStateKMP теперь поддерживает:IBinder,Size,SizeF,Array<Parcelable>,SparseArray<Parcelable>и Serializable (Android). ( I1ba94 , b/334076622 ) - Добавьте экземпляры
KSerializer, которые можно использовать для кодирования/декодирования типов Java и Android, поддерживаемых Bundle, пометив соответствующее поле в вашем классе с помощью@Serializable(with = ParcelableSerializer::class). ( I8c10f , I28caf , b/376026712 ) - Экземпляры
SavedStateRegistryOwnerполученные с помощьюfindViewTreeSavedStateRegistryOwnerтеперь могут быть разрешены через непересекающиеся родительские элементы представления, такие какViewOverlay. Дополнительную информацию о непересекающихся родительских элементах представления см. в примечаниях к выпуску ядра или в документации поViewTree.setViewTreeDisjointParent. ( Iccb33 )
Изменения в API
- Обеспечьте более согласованное именование и организацию пакетов с
SavedStateRegistryOwnerDelegate( I8c135 , b/376026744 )
Версия 1.3.0-alpha05
13 ноября 2024 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha05 . Версия 1.3.0-alpha05 содержит следующие коммиты .
Поддержка сериализации в KotlinX
Теперь
SavedStateподдерживает сериализацию KotlinX. Вы можете преобразовать класс, аннотированный@Serializable, вSavedStateиспользуя методыencodeToSavedStateиdecodeFromSavedState. ВозвращаемыйSavedStateпредставляет собой обычныйBundleна Android и может использоваться любым API, принимающимBundle. ( 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") } }Аналогичный делегат
savedсвойств, предназначенный дляSavedStateHandle, был добавлен в версии Lifecycle2.9.0-alpha07.
Изменения в API
- Добавить
toMapкSavedState, что позволит преобразовать любойSavedStateв обычнуюMap(поверхностную копию). ( I487b9 , b/334076622 ) - Функция
SavedStateKMP теперь поддерживает массивы. ( Ic0552 , b/334076622 )
Версия 1.3.0-alpha04
30 октября 2024 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha04 . Версия 1.3.0-alpha04 содержит следующие коммиты .
Изменения в API
- SavedState KMP теперь поддерживает Char. ( I9ac2f , b/334076622 )
- Добавьте
putNullиisNullв SavedState KMP. ( Iea71d , b/334076622 ) - Добавить дополнительные параметры фабрики
savedState, поддерживающие начальныйMap<String, Any>( I9b37d , b/334076622 ) - Функция SavedState KMP теперь поддерживает сравнение
contentDeepEquals. ( Ia515c , b/334076622 ) - SavedState KMP теперь поддерживает Long. ( I4c180 , b/334076622 )
Версия 1.3.0-alpha03
16 октября 2024 г.
Выпущена androidx.savedstate:savedstate-*:1.3.0-alpha03 без существенных изменений. Версия 1.3.0-alpha03 содержит следующие коммиты .
Версия 1.3.0-alpha02
2 октября 2024 г.
Выпущена версия androidx.savedstate:savedstate-*:1.3.0-alpha02 . Версия 1.3.0-alpha02 содержит следующие коммиты .
Kotlin Multiplatform
- Модуль
SavedStateтеперь совместим с KMP. Поддерживаемые платформы теперь включают Android, iOS, Linux, Mac и настольные среды JVM. ( I26305 , b/334076622 )
Новые функции
- Вводится непрозрачный тип
SavedStateв качестве абстракции для обеспечения согласованного способа сохранения и восстановления состояния приложения в KMP. Он включаетSavedStateReaderиSavedStateWriterдля изменения сохраняемого состояния. На AndroidSavedStateявляется псевдонимом типа для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
7 августа 2024 г.
Выпущены версии androidx.savedstate:savedstate:1.3.0-alpha01 и androidx.savedstate:savedstate-ktx:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты .
Изменения в API
- Расширения Kotlin
savedstate-ktxтеперь перемещены в базовый модуль savedstate. ( I1cc18 , b/274803094 )
Примечание
- Обновите
compileSdkдо версии 35 ( 5dc41be ).
Версия 1.2.1
Версия 1.2.1
22 марта 2023 г.
Выпущены androidx.savedstate:savedstate:1.2.1 и androidx.savedstate:savedstate-ktx:1.2.1 . Версия 1.2.1 содержит эти коммиты.
Обновления зависимостей
-
SavedStateтеперь зависит от Lifecycle2.6.1( c1f621 ).
Версия 1.2.0
Версия 1.2.0
29 июня 2022 г.
Выпущены версии androidx.savedstate:savedstate:1.2.0 и androidx.savedstate:savedstate-ktx:1.2.0 . Версия 1.2.0 содержит эти коммиты.
Важные изменения по сравнению с версией 1.1.0
- Теперь
SavedStateRegistryControllerпозволяет досрочно подключатьSavedStateRegistryс помощьюperformAttach(). - Теперь вы можете получить ранее зарегистрированный
SavedStateProviderизSavedStateRegistryс помощьюgetSavedStateProvider(). - Библиотека
SavedStateбыла переписана на Kotlin.- Для
SavedStateRegistryOwnerэто изменение несовместимо с исходным кодом для классов, написанных на Kotlin — теперь необходимо переопределить свойствоsavedStateRegistry, а не реализовывать предыдущую функциюgetSavedStateRegistry(). - Для
ViewTreeSavedStateRegistryOwnerэто изменение является несовместимым с исходным кодом для классов, написанных на Kotlin — теперь вам необходимо напрямую импортировать и использовать методы расширения Kotlin вViewдляandroidx.savedstate.setViewTreeSavedStateRegistryOwnerиandroidx.savedstate.findViewTreeSavedStateRegistryOwner, чтобы установить и найти ранее установленного владельца. Это заменяет APIsavedstate-ktxдляfindViewTreeSavedStateRegistryOwner.
- Для
Изменения в поведении
-
SavedStateRegistryбольше не сохраняет пустой Bundle, если нет состояния для сохранения.
Версия 1.2.0-rc01
11 мая 2022 г.
Выпущены коммиты androidx.savedstate:savedstate:1.2.0-rc01 и androidx.savedstate:savedstate-ktx:1.2.0-rc01 . Версия 1.2.0-rc01 содержит эти коммиты.
Изменения в документации
- Документация Kdocs
SavedStateRegistryOwnerбыла обновлена для уточнения обязанностей и условий, которые владелец должен соблюдать в отношении реализации интерфейса или случаев вызова методов классаSavedStateRegistryController. ( Iefc95 , b/228887344 )
Версия 1.2.0-beta01
20 апреля 2022 г.
Выпущены версии androidx.savedstate:savedstate:1.2.0-beta01 и androidx.savedstate:savedstate-ktx:1.2.0-beta01 . Версия 1.2.0-beta01 содержит следующие коммиты.
Изменения в API
- Классы
SavedStateRegistryиViewTreeSavedStateRegistryOwnerбыли переписаны на Kotlin. ДляViewTreeSavedStateRegistryOwnerэто изменение является несовместимым с исходным кодом для классов, написанных на Kotlin — теперь необходимо напрямую импортировать и использовать методы расширения Kotlin вViewдляandroidx.savedstate.setViewTreeSavedStateRegistryOwnerиandroidx.savedstate.findViewTreeSavedStateRegistryOwner, чтобы установить и найти ранее установленного владельца. Это заменяет APIsavedstate-ktxклассаfindViewTreeSavedStateRegistryOwner. Это бинарно совместимо и остается совместимым с исходным кодом для реализаций, написанных на языке программирования Java. ( b/220191285 )
Версия 1.2.0-alpha02
6 апреля 2022 г.
Выпущены версии androidx.savedstate:savedstate:1.2.0-alpha02 и androidx.savedstate:savedstate-ktx:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит эти коммиты.
Новые функции
- Теперь вы можете получить ранее зарегистрированный
SavedStateProviderизSavedStateRegistryс помощьюgetSavedStateProvider(). ( I7ea47 , b/215406268 )
Изменения в API
- Классы
SavedStateRegistryOwner,SavedStateRegistryControllerиRecreatorбыли переписаны на Kotlin. ДляSavedStateRegistryOwnerэто изменение является несовместимым с исходным кодом для классов, написанных на Kotlin — теперь необходимо переопределить свойствоsavedStateRegistryа не реализовывать предыдущую функциюgetSavedStateRegistry(). Это бинарно и исходно совместимо с реализациями, написанными на языке программирования Java. ( b/220191285 )
Версия 1.2.0-alpha01
26 января 2022 г.
Выпущены коммиты androidx.savedstate:savedstate:1.2.0-alpha01 и androidx.savedstate:savedstate-ktx:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты.
Новые функции
- Теперь
SavedStateRegistryControllerпозволяет осуществлять раннее присоединениеSavedStateRegistryс помощьюperformAttach(). ( Ice4bf )
Изменения в поведении
-
SavedStateRegistryбольше не сохраняет пустой Bundle, если нет состояния для сохранения. ( aosp/1896865 , b/203457956 )
Версия 1.1.0
Версия 1.1.0
10 февраля 2021 г.
Выпущены androidx.savedstate:savedstate:1.1.0 и androidx.savedstate:savedstate-ktx:1.1.0 . Версия 1.1.0 содержит эти коммиты.
Значительные изменения с версии 1.0.0
- API
ViewTreeSavedStateRegistryOwner: Новый APIViewTreeSavedStateRegistryOwner.get(View)позволяет получить содержащийся в немSavedStateRegistryимея экземплярView. Для корректного заполнения необходимо обновить Activity до1.2.0, Fragment1.3.0и AppCompat1.3.0-alpha01или выше. - Артефакт
savedstate-ktx: Добавлен новый артефактsavedstate-ktxс расширением KotlinfindViewTreeSavedStateRegistryOwner()для работы сViewTreeSavedStateRegistryOwner.
Версия 1.1.0-rc01
16 декабря 2020 г.
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
1 октября 2020 г.
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
20 мая 2020 г.
Выпущены коммиты androidx.savedstate:savedstate:1.1.0-alpha01 и androidx.savedstate:savedstate-ktx:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты.
Новые функции
- Новый API
ViewTreeSavedStateRegistryOwner.get(View)позволяет получить содержащийся в немSavedStateRegistryимея экземплярView. Для корректного заполнения необходимо обновить Activity до1.2.0-alpha05, Fragment1.3.0-alpha05и AppCompat1.3.0-alpha01. ( aosp/1298679 ) - Добавлен новый артефакт
savedstate-ktxсодержащий расширение KotlinfindViewTreeSavedStateRegistryOwner()для работы сViewTreeSavedStateRegistryOwner. ( aosp/1299434 )
Версия 1.0.0
Версия 1.0.0
5 сентября 2019 г.
Выпущена версия androidx.savedstate:savedstate:1.0.0 . Список изменений, включенных в эту версию, можно найти здесь .
Основные особенности SavedState 1.0.0
androidx.savedstate получил стабильную версию. Это набор API, позволяющий разработчикам подключать компоненты к процессу восстановления/сохранения состояния экземпляра. Основной точкой входа в API является SavedStateRegistry , который предоставляет способ получения ранее сохраненных состояний с помощью consumeRestoredStateForKey и регистрации обратного вызова для registerSavedStateProvider , чтобы предоставить сохраненное состояние по запросу системы.
Версия 1.0.0-rc01
2 июля 2019 г.
Выпущена версия androidx.savedstate:savedstate:1.0.0-rc01 . Список изменений, включенных в эту версию, можно найти здесь .
Исправлены ошибки
- Исправлено некорректное правило ProGuard ( b/132655499 )
Версия 1.0.0-beta01
7 мая 2019 г.
Выпущена версия androidx.savedstate:savedstate:1.0.0-beta01 . Список изменений, включенных в эту версию, можно найти здесь .
Версия 1.0.0-alpha02
13 марта 2019 г.
Выпущена версия androidx.savedstate:savedstate:1.0.0-alpha02 . androidx.savedstate:savedstate объединяет артефакты androidx.savedstate:savedstate-bundle и androidx.savedstate:savedstate-common в один артефакт, поскольку было решено упростить инфраструктуру сохраненных состояний и удалить обобщения из SavedStateRegistry . Таким образом, нет необходимости в отдельных модулях.
Полный список изменений, включенных в эту версию, можно найти здесь .
Новые функции
- Добавлен
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ). Указанный класс будет создан, и методAutoRecreated.onRecreatedбудет выполнен при перезапуске компонента-владельца.
изменения API
- Обобщенные типы удалены из
SavedStateRegistry<T> - Компоненты AbstractSavedStateRegistry и BundlableSavedStateRegistry удалены, вместо них используйте простой
SavedStateRegistry -
BundleSavedStateRegistryOwnerпереименован вSavedStateRegistryOwner
Версия 1.0.0-alpha01
17 декабря 2018 г.
Это первый релиз SavedState .
Новые функции
androidx.savedstate — это новый набор альфа-версий API, позволяющий разработчикам подключать компоненты к процессу восстановления/сохранения состояния экземпляра. Основной точкой входа в API является SavedStateRegistry<T> , который предоставляет способ получения ранее сохраненного состояния с помощью consumeRestoredStateForKey и регистрации обратного вызова для registerSavedStateProvider , чтобы предоставить сохраненное состояние, когда система запросит его.