# SavedStateRegistryController

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedStateRegistryController.kt+class:androidx.savedstate.SavedStateRegistryController) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.0.0)

*** ** * ** ***

Common/AllAndroid/JVM
- Cmn

  ```
  class SavedStateRegistryController
  ```

*** ** * ** ***

An API for `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryOwner` implementations to control `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`.

A `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryOwner` should call `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#performRestore(androidx.savedstate.SavedState)` to restore the state of the `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`, and `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#performSave(androidx.savedstate.SavedState)` to gather the saved state from it.

## Summary

| ### Public companion functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController` | `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#create(androidx.savedstate.SavedStateRegistryOwner)(owner: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryOwner)` Creates a `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController`. | Cmn |

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#performAttach()()` Performs the initial, one-time attachment necessary to configure this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#performRestore(androidx.savedstate.SavedState)(savedState: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?)` Restores the saved state for the owner of this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#performSave(androidx.savedstate.SavedState)(outBundle: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState)` Saves the state for the owner of this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`. | Cmn |

| ### Public properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` | `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#savedStateRegistry()` The `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` controlled by this controller. | Cmn |

## Public companion functions

### create

Cmn Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.2.0)

```
fun create(owner: SavedStateRegistryOwner): SavedStateRegistryController
```

Creates a `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController`.

Call this during construction of the `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryOwner`.

## Public functions

### performAttach

Cmn Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.2.0)

```
@MainThread
fun performAttach(): Unit
```

Performs the initial, one-time attachment necessary to configure this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`.

Call this when the owner's `https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle` is `https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle.State#INITIALIZED` and before calling `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryController#performRestore(androidx.savedstate.SavedState)`.

### performRestore

Cmn

```
@MainThread
fun performRestore(savedState: SavedState?): Unit
```

Restores the saved state for the owner of this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`.

| Parameters |
|---|---|
| `savedState: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?` | The restored state. |

### performSave

Cmn

```
@MainThread
fun performSave(outBundle: SavedState): Unit
```

Saves the state for the owner of this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry`.

This calls all registered providers and merges their states with the unconsumed state.

| Parameters |
|---|---|
| `outBundle: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState` | The `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState` in which to place the saved state. |

## Public properties

### savedStateRegistry

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.0.0)

```
val savedStateRegistry: SavedStateRegistry
```

The `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` controlled by this controller.