Сохранено

Напишите подключаемые компоненты, которые сохраняют состояние пользовательского интерфейса при завершении процесса и восстанавливают его при перезапуске процесса.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-релиз Альфа-релиз
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 UI 1.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 для изменения состояния, которое должно быть сохранено. На 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 , в 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 добавлен в Lifecycle 2.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 добавлен в Lifecycle 2.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 для изменения состояния, которое должно быть сохранено. На 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-альфа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 содержит эти коммиты.

Обновления зависимостей

Версия 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 для установки и поиска ранее установленного владельца. Это заменяет API savedstate-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 , чтобы задать и найти ранее заданного владельца. Это заменяет API savedstate-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 . Для корректного заполнения необходимо обновиться до Activity 1.2.0 , Fragment 1.3.0 и AppCompat 1.3.0-alpha01 или выше.
  • артефакт savedstate-ktx : добавлен новый артефакт savedstate-ktx с расширением Kotlin findViewTreeSavedStateRegistryOwner() для работы с 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 был добавлен с расширением Kotlin findViewTreeSavedStateRegistryOwner() для работы с 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 для предоставления сохраненного состояния, как только система его запросит.