# ViewModelProviders

Artifact: [androidx.lifecycle:lifecycle-extensions](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/ViewModelProviders.java+class:androidx.lifecycle.ViewModelProviders) Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

*** ** * ** ***

Common/AllAndroid/JVM
- android

  ```
  class ViewModelProviders
  ```

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> Use the constructors for `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` directly.

Utilities methods for `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore` class.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders.DefaultFactory` **This class is deprecated.** Use ViewModelProvider.AndroidViewModelFactory <br /> |

| ### Public constructors |
|---|---|
| `[ViewModelProviders](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#ViewModelProviders())()` **This function is deprecated.** This class should not be directly instantiated <br /> | android |

| ### Public functions |
|---|---|---|
| `java-static https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.FragmentActivity))(activity: https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentActivity)` **This function is deprecated.** Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the activity. <br /> | android |
| `java-static https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.Fragment))(fragment: https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment)` **This function is deprecated.** Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the fragment. <br /> | android |
| `java-static https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.FragmentActivity,androidx.lifecycle.ViewModelProvider.Factory))(activity: https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentActivity, factory: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory?)` **This function is deprecated.** Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the activity and factory. <br /> | android |
| `java-static https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.Fragment,androidx.lifecycle.ViewModelProvider.Factory))(fragment: https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment, factory: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory?)` **This function is deprecated.** Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the fragment and factory. <br /> | android |

## Public constructors

### ViewModelProviders

android Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0) Deprecated in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0)

```
[ViewModelProviders](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#ViewModelProviders())()
```

> [!CAUTION]
> **This function is deprecated.**   
>
> This class should not be directly instantiated

## Public functions

### of

android Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

```
@MainThread
java-static fun [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.FragmentActivity))(activity: FragmentActivity): ViewModelProvider
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the activity.

Creates a `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`, which retains ViewModels while a scope of given Activity is alive. More detailed explanation is in `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel`.

It uses the `https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity#getDefaultViewModelProviderFactory()` to instantiate new ViewModels.

| Parameters |
|---|---|
| `activity: https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentActivity` | an activity, in whose scope ViewModels should be retained |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | a ViewModelProvider instance |

### of

android Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

```
@MainThread
java-static fun [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.Fragment))(fragment: Fragment): ViewModelProvider
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the fragment.

Creates a `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`, which retains ViewModels while a scope of given `fragment` is alive. More detailed explanation is in `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel`.

It uses the `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment#getDefaultViewModelProviderFactory()` to instantiate new ViewModels.

| Parameters |
|---|---|
| `fragment: https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment` | a fragment, in whose scope ViewModels should be retained |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | a ViewModelProvider instance |

### of

android Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

```
@MainThread
java-static fun [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.FragmentActivity,androidx.lifecycle.ViewModelProvider.Factory))(activity: FragmentActivity, factory: ViewModelProvider.Factory?): ViewModelProvider
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the activity and factory.

Creates a `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`, which retains ViewModels while a scope of given Activity is alive. More detailed explanation is in `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel`.

It uses the given `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to instantiate new ViewModels.

| Parameters |
|---|---|
| `activity: https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentActivity` | an activity, in whose scope ViewModels should be retained |
| `factory: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory?` | a `Factory` to instantiate new ViewModels |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | a ViewModelProvider instance |

### of

android Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

```
@MainThread
java-static fun [of](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProviders#of(androidx.fragment.app.Fragment,androidx.lifecycle.ViewModelProvider.Factory))(fragment: Fragment, factory: ViewModelProvider.Factory?): ViewModelProvider
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use the 'by viewModels()' Kotlin property delegate or ViewModelProvider, passing in the fragment and factory.

Creates a `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`, which retains ViewModels while a scope of given `fragment` is alive. More detailed explanation is in `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel`.

It uses the given `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to instantiate new ViewModels.

| Parameters |
|---|---|
| `fragment: https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment` | a fragment, in whose scope ViewModels should be retained |
| `factory: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory?` | a `Factory` to instantiate new ViewModels |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider` | a ViewModelProvider instance |