# androidx.lifecycle.serialization

*** ** * ** ***

Common/All

## Extension functions summary

|---|---|---|
| `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.properties/-read-write-property/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle.https://developer.android.com/reference/kotlin/androidx/lifecycle/serialization/package-summary#(androidx.lifecycle.SavedStateHandle).saved(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration,kotlin.Function0)( key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, configuration: https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration, noinline init: () -> T )` Returns a property delegate that uses `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` to save and restore a value of type `https://developer.android.com/reference/kotlin/androidx/lifecycle/serialization/package-summary#(androidx.lifecycle.SavedStateHandle).saved(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration,kotlin.Function0)` with the default serializer. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.properties/-read-write-property/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle.https://developer.android.com/reference/kotlin/androidx/lifecycle/serialization/package-summary#(androidx.lifecycle.SavedStateHandle).saved(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration,kotlin.Function0)( serializer: https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html<T>, key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, configuration: https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration, init: () -> T )` Returns a property delegate that uses `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` to save and restore a value of type `https://developer.android.com/reference/kotlin/androidx/lifecycle/serialization/package-summary#(androidx.lifecycle.SavedStateHandle).saved(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration,kotlin.Function0)`. | Cmn |

## Extension functions

### SavedStateHandle.saved

Cmn Artifact: [androidx.lifecycle:lifecycle-viewmodel-savedstate](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/serialization/SavedStateHandleDelegate.kt+function:saved)

```
inline fun <T : Any?> SavedStateHandle.saved(
    key: String? = null,
    configuration: SavedStateConfiguration = SavedStateConfiguration.DEFAULT,
    noinline init: () -> T
): ReadWriteProperty<Any?, T>
```

Returns a property delegate that uses `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` to save and restore a value of type `https://developer.android.com/reference/kotlin/androidx/lifecycle/serialization/package-summary#(androidx.lifecycle.SavedStateHandle).saved(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration,kotlin.Function0)` with the default serializer.

```kotlin
import androidx.lifecycle.serialization.saved

@Serializable data class User(val id: Int, val name: String)
class ProfileViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
    val user by savedStateHandle.saved(key = "bar") { User(123, "foo") }
}
```

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html? = null` | An optional `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` key to use for storing the value in the `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle`. A default key will be generated if it's omitted or when 'null' is passed. |
| `configuration: https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration = SavedStateConfiguration.DEFAULT` | The `https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration` to use. Defaults to `https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration#DEFAULT()`. |
| `noinline init: () -> T` | The function to provide the initial value of the property. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.properties/-read-write-property/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, T>` | A property delegate that manages the saving and restoring of the value. |

### SavedStateHandle.saved

Cmn Artifact: [androidx.lifecycle:lifecycle-viewmodel-savedstate](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/serialization/SavedStateHandleDelegate.kt+function:saved) Added in [2.10.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.10.0)

```
fun <T : Any?> SavedStateHandle.saved(
    serializer: KSerializer<T>,
    key: String? = null,
    configuration: SavedStateConfiguration = SavedStateConfiguration.DEFAULT,
    init: () -> T
): ReadWriteProperty<Any?, T>
```

Returns a property delegate that uses `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` to save and restore a value of type `https://developer.android.com/reference/kotlin/androidx/lifecycle/serialization/package-summary#(androidx.lifecycle.SavedStateHandle).saved(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration,kotlin.Function0)`.

```kotlin
import androidx.lifecycle.serialization.saved

@Serializable data class User(val id: Int, val name: String)
class ProfileViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
    val user by
        savedStateHandle.saved(key = "bar", serializer = User::class.serializer()) {
            User(123, "foo")
        }
}
```

| Parameters |
|---|---|
| `serializer: https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html<T>` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html` to use for serializing and deserializing the value. |
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html? = null` | An optional `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` key to use for storing the value in the `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle`. A default key will be generated if it's omitted or when 'null' is passed. |
| `configuration: https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration = SavedStateConfiguration.DEFAULT` | The `https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration` to use. Defaults to `https://developer.android.com/reference/kotlin/androidx/savedstate/serialization/SavedStateConfiguration#DEFAULT()`. |
| `init: () -> T` | The function to provide the initial value of the property. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.properties/-read-write-property/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, T>` | A property delegate that manages the saving and restoring of the value. |