AbstractSavedStateViewModelFactory
public abstract class AbstractSavedStateViewModelFactory implements ViewModelProvider.Factory
Skeleton of androidx.lifecycle.ViewModelProvider.KeyedFactory that creates SavedStateHandle for every requested ViewModel. The subclasses implement create to actually instantiate androidx.lifecycle.ViewModels.
Deprecated: Use viewModelFactory or implement ViewModelProvider.Factory directly, combined with CreationExtras.createSavedStateHandle. This base class creates a SavedStateHandle for every ViewModel, even when unnecessary, causing overhead.
For example:
viewModelFactory { initializer { MyViewModel(createSavedStateHandle()) } }Summary
Public constructors |
|---|
|
This method is deprecated. Use `viewModelFactory` or implement `ViewModelProvider.Factory`, combined with `CreationExtras.createSavedStateHandle()`. |
This method is deprecated. Use `viewModelFactory` or implement `ViewModelProvider.Factory`, combined with `CreationExtras.createSavedStateHandle()`. |
Public methods |
|
|---|---|
@NonNull T |
This method is deprecated. Use `viewModelFactory` or implement `ViewModelProvider.Factory`, combined with `CreationExtras.createSavedStateHandle()`. |
@NonNull T |
<T extends ViewModel> This method is deprecated. Use `viewModelFactory` or implement `ViewModelProvider.Factory`, combined with `CreationExtras.createSavedStateHandle()`. |
Protected methods |
|
|---|---|
abstract @NonNull T |
<T extends ViewModel> This method is deprecated. Use `viewModelFactory` or implement `ViewModelProvider.Factory`, combined with `CreationExtras.createSavedStateHandle()`. |
Inherited methods |
|---|
Public constructors
public AbstractSavedStateViewModelFactory()Constructs this factory.
When a factory is constructed this way, a component for which SavedStateHandle is scoped must have called enableSavedStateHandles. See CreationExtras.createSavedStateHandle docs for more details.
publicAbstractSavedStateViewModelFactory(
@NonNull SavedStateRegistryOwner owner,
Bundle defaultArgs
)
Constructs this factory.
| Parameters | |
|---|---|
@NonNull SavedStateRegistryOwner owner |
|
Bundle defaultArgs |
values from this |
Public methods
create
public @NonNull T <T extends ViewModel>create(@NonNull Class<@NonNull T> modelClass)
Creates a new instance of the given Class.
| Returns | |
|---|---|
@NonNull T |
a newly created ViewModel |
| Throws | |
|---|---|
kotlin.IllegalArgumentException |
if the given |
kotlin.UnsupportedOperationException |
if AbstractSavedStateViewModelFactory constructed with empty constructor, therefore no |
create
public @NonNull T <T extends ViewModel>create(
@NonNull Class<@NonNull T> modelClass,
@NonNull CreationExtras extras
)
Creates a new instance of the given Class.
| Parameters | |
|---|---|
@NonNull Class<@NonNull T> modelClass |
a |
@NonNull CreationExtras extras |
an additional information for this creation request |
| Returns | |
|---|---|
@NonNull T |
a newly created ViewModel |
| Throws | |
|---|---|
kotlin.IllegalStateException |
if no VIEW_MODEL_KEY provided by ViewModelProvider |
Protected methods
protected abstract @NonNull T <T extends ViewModel>create(
@NonNull String key,
@NonNull Class<@NonNull T> modelClass,
@NonNull SavedStateHandle handle
)
Creates a new instance of the given Class.
| Parameters | |
|---|---|
@NonNull String key |
a key associated with the requested ViewModel |
@NonNull Class<@NonNull T> modelClass |
a |
@NonNull SavedStateHandle handle |
a handle to saved state associated with the requested ViewModel |
| Returns | |
|---|---|
@NonNull T |
the newly created ViewModel |