Сохраненное состояние
| Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
|---|---|---|---|---|
| 22 октября 2025 г. | 1.3.3 | 1.4.0-rc01 | - | - |
Объявление зависимостей
Чтобы добавить зависимость от SavedState, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Круто
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
Котлин
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Версия 1.4
Версия 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-альфа03
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-альфа02
13 августа 2025 г.
Выпущен androidx.savedstate:savedstate-*:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит следующие коммиты .
Версия 1.4.0-альфа01
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 и десктоп), Native (Linux, iOS, watchOS, macOS, MinGW) и Web (JavaScript, WasmJS). ( /Idcf26 )
Версия 1.3.1
16 июля 2025 г.
Выпущен androidx.savedstate:savedstate-*:1.3.1 . Версия 1.3.1 содержит следующие коммиты .
Исправления ошибок
- Добавьте все цели KMP, поддерживаемые аннотациями, в артефакты
SavedState. - Добавлены новые цели Kotlin Multiplatform (KMP) для артефактов
SavedState.SavedStateтеперь поддерживает следующие платформы: JVM (Android и десктоп), Native (Linux, iOS, watchOS, macOS, MinGW) и Web (JavaScript, WasmJS). Обратите внимание, что новые цели KMP для артефактов*-composeне добавлены, так как это зависит от стабильной версии Compose 1.9 ( I062f4 ).
Версия 1.3.0
7 мая 2025 г.
Выпущен androidx.savedstate:savedstate-*:1.3.0 . Версия 1.3.0 содержит следующие коммиты .
Важные изменения с версии 1.2.0
-
LocalSavedStateRegistryOwnerперенесён из Compose UI в новый модульsavedstate-compose, чтобы его вспомогательные API на основе Compose можно было использовать вне Compose UI. Этот модуль следует использовать всегда при использовании Compose UI1.9.0-alpha02и выше, но он обратно совместим и может использоваться со всеми версиями Compose. - Расширения
savedstate-ktxдля Kotlin теперь перенесены в базовый модуль savestate. - Экземпляры
SavedStateRegistryOwner, полученные с помощьюfindViewTreeSavedStateRegistryOwner, теперь можно разрешить через непересекающиеся родительские элементы представления, такие какViewOverlay. Подробнее о непересекающихся родительских элементах представления см. в примечаниях к выпуску ядра или в документации поViewTree.setViewTreeDisjointParent.
Kotlin Мультиплатформенный
- Модуль
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") } }Аналогичный делегат
savedсвойства дляSavedStateHandleдобавлен в Lifecycle2.9.0.
Версия 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-альфа11
26 марта 2025 г.
androidx.savedstate:savedstate-*:1.3.0-alpha11 выпущен без заметных изменений. Версия 1.3.0-alpha11 содержит следующие коммиты .
Версия 1.3.0-альфа10
12 марта 2025 г.
Выпущен androidx.savedstate:savedstate-*:1.3.0-alpha10 . Версия 1.3.0-alpha10 содержит следующие коммиты .
Новые функции
- Добавить нематериализованные варианты метода для
getколлекций вSavedStateReader. ( I0b641 , b/399820614 ) - Добавьте
encodeDefaultsвSavedStateConfiguration, что позволит настраивать, следует ли кодировать свойства со значениями по умолчанию. ( I893cc , b/395104517 ) - Добавить
SnapshotStateMapSerializerдля поддержкиmutableStateMapOf. ( Ie6f19 , b/378895074 ) - Добавить
SnapshotStateListSerializerдля поддержкиmutableStateListOf. ( 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-альфа09
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-альфа08
12 февраля 2025 г.
Выпущен androidx.savedstate:savedstate-*:1.3.0-alpha08 . Версия 1.3.0-alpha08 содержит следующие коммиты .
Новые функции
- Переместить
MutableStateSerializerвsavedstate-composeизlifecycle-viewmodel-compose, что позволит использовать API сериализации SavedState сMutableStateиз Compose. ( I4f690 , b/378895074 )
Изменения API
- Добавьте фабричную функцию для создания
SavedStateиз существующегоSavedState. ( I39f9a ) - Добавляет поддержку
Array<SavedState>иList<SavedState>вandroidx.savedstate. ( Idd8a5 ) - Добавить необязательный параметр
SavedStateConfigк кодированию/декодированию SavedState ( I6c4c0 )
Версия 1.3.0-альфа07
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-альфа06
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-альфа05
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-альфа04
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-альфа03
16 октября 2024 г.
androidx.savedstate:savedstate-*:1.3.0-alpha03 выпущен без существенных изменений. Версия 1.3.0-alpha03 содержит следующие коммиты .
Версия 1.3.0-альфа02
2 октября 2024 г.
Выпущен androidx.savedstate:savedstate-*:1.3.0-alpha02 . Версия 1.3.0-alpha02 содержит следующие коммиты .
Kotlin Мультиплатформенный
- Модуль
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-альфа01
7 августа 2024 г.
Выпущены androidx.savedstate:savedstate:1.3.0-alpha01 и androidx.savedstate:savedstate-ktx:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит эти коммиты .
Изменения API
- Расширения
savedstate-ktxдля Kotlin теперь перенесены в базовый модуль savestate. ( 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 содержит эти коммиты.
Изменения в документации
- Документация
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 дляandroidx.savedstate.setViewTreeSavedStateRegistryOwnerиandroidx.savedstate.findViewTreeSavedStateRegistryOwnerвViewдля установки и поиска ранее заданного владельца. Это заменяет APIsavedstate-ktxдляfindViewTreeSavedStateRegistryOwner. Он совместим с бинарным кодом и остаётся совместимым с исходным кодом для реализаций, написанных на языке программирования Java. ( b/220191285 )
Версия 1.2.0-альфа02
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-альфа01
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, Fragment до1.3.0и AppCompat до1.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-альфа01
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, Fragment до1.3.0-alpha05и AppCompat до1.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-альфа02
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-альфа01
17 декабря 2018 г.
Это первый выпуск SavedState .
Новые функции
androidx.savedstate — это новый набор альфа-версий API, позволяющий разработчикам добавлять компоненты к процессу restore/saveInstanceState. Основной точкой входа этого API является SavedStateRegistry<T> , который позволяет получить ранее сохранённое состояние через consumeRestoredStateForKey и зарегистрировать обратный вызов registerSavedStateProvider для предоставления сохранённого состояния по запросу системы.