# ViewModelStoreOwnerFactory

Added in 2.11.0

*** ** * ** ***


```
public final class ViewModelStoreOwnerFactory
```

<br />

*** ** * ** ***

## Summary

| ### Public methods |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelStoreOwner` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreOwnerFactory#create(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelStore viewModelStore, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState defaultArgs, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras defaultCreationExtras, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory defaultFactory )` Creates a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` by composing a store, factory, and creation extras. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelStoreOwner` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreOwnerFactory#create(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistryOwner,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelStore viewModelStore, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner savedStateRegistryOwner, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState defaultArgs, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras defaultCreationExtras, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory defaultFactory )` Creates a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistryOwner,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` that also acts as a `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner`, composing a store, state registry, lifecycle, factory, and creation extras. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelStoreOwner` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreOwnerFactory#create(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelStore viewModelStore, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry savedStateRegistry, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/Lifecycle lifecycle, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState defaultArgs, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras defaultCreationExtras, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory defaultFactory )` Creates a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` that also acts as a `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner`, composing a store, state registry, lifecycle, factory, and creation extras. |

## Public methods

### create

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/viewmodel/ViewModelStoreOwnerFactory.kt+function:ViewModelStoreOwner)

```
public static final @NonNull ViewModelStoreOwner create(
    @NonNull ViewModelStore viewModelStore,
    @NonNull SavedState defaultArgs,
    @NonNull CreationExtras defaultCreationExtras,
    @NonNull ViewModelProvider.Factory defaultFactory
)
```

Creates a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` by composing a store, factory, and creation extras.

### create

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/viewmodel/ViewModelStoreOwnerFactory.kt+function:ViewModelStoreOwner)

```
public static final @NonNull ViewModelStoreOwner create(
    @NonNull ViewModelStore viewModelStore,
    @NonNull SavedStateRegistryOwner savedStateRegistryOwner,
    @NonNull SavedState defaultArgs,
    @NonNull CreationExtras defaultCreationExtras,
    @NonNull ViewModelProvider.Factory defaultFactory
)
```

Creates a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistryOwner,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` that also acts as a `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner`, composing a store, state registry, lifecycle, factory, and creation extras.

While the simpler `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistryOwner,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` factory handles standard ViewModels, this overload provides the necessary infrastructure for ViewModels that rely on `https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle`. By bundling the `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner` with the store, it creates a fully equipped scope capable of properly wiring up state-saving mechanisms for its ViewModels.

### create

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/viewmodel/ViewModelStoreOwnerFactory.kt+function:ViewModelStoreOwner)

```
public static final @NonNull ViewModelStoreOwner create(
    @NonNull ViewModelStore viewModelStore,
    @NonNull SavedStateRegistry savedStateRegistry,
    @NonNull Lifecycle lifecycle,
    @NonNull SavedState defaultArgs,
    @NonNull CreationExtras defaultCreationExtras,
    @NonNull ViewModelProvider.Factory defaultFactory
)
```

Creates a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` that also acts as a `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistryOwner`, composing a store, state registry, lifecycle, factory, and creation extras.

While the simpler `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#ViewModelStoreOwner(androidx.lifecycle.ViewModelStore,androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle,androidx.savedstate.SavedState,androidx.lifecycle.viewmodel.CreationExtras,androidx.lifecycle.ViewModelProvider.Factory)` factory handles standard ViewModels, this overload provides the necessary infrastructure for ViewModels that rely on `https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle`. By bundling the `https://developer.android.com/reference/androidx/savedstate/SavedStateRegistry` and `https://developer.android.com/reference/androidx/lifecycle/Lifecycle` with the store, it creates a fully equipped scope capable of properly wiring up state-saving mechanisms for its ViewModels.