# SavedStateHandle.Companion

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/SavedStateHandle.+class:androidx.lifecycle.SavedStateHandle.Companion) Added in [2.5.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.5.0)

*** ** * ** ***


```
public static class SavedStateHandle.Companion
```

<br />

*** ** * ** ***

## Summary

| ### Extension functions |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle` | `https://developer.android.com/reference/androidx/lifecycle/SavedStateHandleFactoryKt.https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle.Companion#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle.Companion receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html route, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap )` SavedStateHandle constructor to create a SavedStateHandle with a serializable object. |

## Extension functions

### SavedStateHandleFactoryKt.invoke

Artifact: [androidx.navigation:navigation-testing](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/testing/SavedStateHandleFactory.kt+function:invoke)

```
public static final @NonNull SavedStateHandle SavedStateHandleFactoryKt.invoke(
    @NonNull SavedStateHandle.Companion receiver,
    @NonNull Object route,
    @NonNull Map<@NonNull KType, @NonNull NavType<@NonNull ?>> typeMap
)
```

SavedStateHandle constructor to create a SavedStateHandle with a serializable object.

Returns a `https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle` populated with arguments from `https://developer.android.com/reference/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)`.

Note: To use this api in non-instrumented tests, run with robolectric. This is because android's [Bundle](https://developer.android.com/reference/android/os/Bundle) is necessarily integrated into the parsing of route arguments.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html route` | The route to extract argument values from |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap` | A mapping of KType to custom NavType\<\*\> in the `https://developer.android.com/reference/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)`. May be empty if `https://developer.android.com/reference/androidx/navigation/testing/package-summary#(androidx.lifecycle.SavedStateHandle.Companion).invoke(kotlin.Any,kotlin.collections.Map)` does not use custom NavTypes. |