Сохранено
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
2 июля 2025 г. | 1.3.1 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от SavedState, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.1" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.1" }
Котлин
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.1") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.1") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Версия 1.3
Версия 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. - Расширения kotlin
savedstate-ktx
теперь перемещены в базовый модуль savedstate. - Экземпляры
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 содержит эти коммиты .
Новые возможности
-
SavedState
KMP теперь поддерживает: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 ) -
SavedState
KMP теперь поддерживает массивы. ( 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
- Расширения 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 содержит эти коммиты.
Изменения в документации
- Документация
SavedStateRegistryOwner
Kdocs была обновлена с целью прояснить обязанности и контракт владельца относительно того, как он должен реализовывать интерфейс или когда он должен вызывать методы в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-альфа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
-
ViewTreeSavedStateRegistryOwner
API : новыйViewTreeSavedStateRegistryOwner.get(View)
API позволяет извлекать содержащийSavedStateRegistry
, заданный экземпляромView
. Для корректного заполнения необходимо обновиться до Activity1.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-альфа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
. Вам необходимо обновиться до Activity1.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, которые позволяют разработчикам подключать компоненты в процесс restore / saveInstanceState. Основной точкой входа 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
в один артефакт, поскольку было решено упростить инфраструктуру savedstate и удалить generics из 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
для предоставления сохраненного состояния, как только система его запросит.