# 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)

*** ** * ** ***


```
public final class SavedStateRegistryController
```

<br />

*** ** * ** ***

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

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

## Summary

| ### Public methods |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController` | `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController#create(androidx.savedstate.SavedStateRegistryOwner)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner owner)` Creates a `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry` | `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController#getSavedStateRegistry()()` The `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry` controlled by this controller. |
| `final void` | `@https://developer.android.com/reference/androidx/annotation/MainThread https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController#performAttach()()` Performs the initial, one-time attachment necessary to configure this `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry`. |
| `final void` | `@https://developer.android.com/reference/androidx/annotation/MainThread https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController#performRestore(androidx.savedstate.SavedState)(https://developer.android.com/reference/androidx/savedstate/SavedState savedState)` Restores the saved state for the owner of this `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry`. |
| `final void` | `@https://developer.android.com/reference/androidx/annotation/MainThread https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryController#performSave(androidx.savedstate.SavedState)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState outBundle)` Saves the state for the owner of this `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry`. |

## Public methods

### create

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

```
public static final @NonNull SavedStateRegistryController create(@NonNull SavedStateRegistryOwner owner)
```

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

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

### getSavedStateRegistry

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

```
public final @NonNull SavedStateRegistry getSavedStateRegistry()
```

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

### performAttach

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

```
@MainThread
public final void performAttach()
```

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

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

### performRestore

```
@MainThread
public final void performRestore(SavedState savedState)
```

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

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

### performSave

```
@MainThread
public final void performSave(@NonNull SavedState outBundle)
```

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

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

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