SavedStateViewModelFactory


public final class SavedStateViewModelFactory implements ViewModelProvider.Factory


androidx.lifecycle.ViewModelProvider.Factory that can create ViewModels accessing and contributing to a saved state via SavedStateHandle received in a constructor. If defaultArgs bundle was passed into the constructor, it will provide default values in SavedStateHandle.

If ViewModel is instance of androidx.lifecycle.AndroidViewModel, it looks for a constructor that receives an Application and SavedStateHandle (in this order), otherwise it looks for a constructor that receives SavedStateHandle only. androidx.lifecycle.AndroidViewModel is only supported if you pass a non-null Application instance.

Summary

Public constructors

Constructs this factory.

Creates SavedStateViewModelFactory.

SavedStateViewModelFactory(
    Application application,
    @NonNull SavedStateRegistryOwner owner,
    Bundle defaultArgs
)

Creates SavedStateViewModelFactory.

Inherited methods

From androidx.lifecycle.ViewModelProvider.Factory
@NonNull T
<T extends ViewModel> create(
    @NonNull KClass<@NonNull T> modelClass,
    @NonNull CreationExtras extras
)

Public constructors

SavedStateViewModelFactory

Added in 2.5.0
public SavedStateViewModelFactory()

Constructs this factory.

When a factory is constructed this way, a component for which SavedStateHandle is scoped must have called enableSavedStateHandles.

See also
createSavedStateHandle

docs for more details.

SavedStateViewModelFactory

Added in 1.0.0
public SavedStateViewModelFactory(
    Application application,
    @NonNull SavedStateRegistryOwner owner
)

Creates SavedStateViewModelFactory.

androidx.lifecycle.ViewModel created with this factory can access to saved state scoped to the given activity.

Parameters
Application application

an application. If null, AndroidViewModel instances will not be supported.

@NonNull SavedStateRegistryOwner owner

SavedStateRegistryOwner that will provide restored state for created ViewModels

SavedStateViewModelFactory

Added in 1.0.0
public SavedStateViewModelFactory(
    Application application,
    @NonNull SavedStateRegistryOwner owner,
    Bundle defaultArgs
)

Creates SavedStateViewModelFactory.

androidx.lifecycle.ViewModel created with this factory can access to saved state scoped to the given activity.

When a factory is constructed this way, if you add any CreationExtras those arguments will be used instead of the state passed in here. It is not possible to mix the arguments received here with the CreationExtras.

Parameters
Application application

an application. If null, AndroidViewModel instances will not be supported.

@NonNull SavedStateRegistryOwner owner

SavedStateRegistryOwner that will provide restored state for created ViewModels

Bundle defaultArgs

values from this Bundle will be used as defaults by SavedStateHandle if there is no previously saved state or previously saved state misses a value by such key.