# ViewModelStoreProvider.ProviderMarkerKey

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/ViewModelStoreProvider.kt+class:androidx.lifecycle.viewmodel.ViewModelStoreProvider.ProviderMarkerKey) Added in [2.11.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.11.0)

*** ** * ** ***

<br />

```
public static class ViewModelStoreProvider.ProviderMarkerKey
```

<br />

*** ** * ** ***

A special marker key that can be used with `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider#acquireToken(kotlin.Any)` to manage the lifecycle of the shared state associated with a particular `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider#parentKey()`.

When multiple instances of `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider` are created with the same `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider#parentStore()` and `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider#parentKey()`, they share a single internal state. By calling `acquireToken(ProviderMarkerKey)` on *any* of these instances, you increment a reference count on this shared state. The shared state will not be fully cleared (and thus, no child `https://developer.android.com/reference/androidx/lifecycle/ViewModelStore` instances within it will be cleared) until all tokens acquired with `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider.ProviderMarkerKey` have been released via `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-auto-closeable/close.html`.

This is useful in advanced scenarios where different parts of an application might create `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider` instances with the same key but have different lifecycle requirements.

## Summary

| ### Public fields |
|---|---|
| `static @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider.ProviderMarkerKey` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/ViewModelStoreProvider.ProviderMarkerKey#INSTANCE()` |

## Public fields

### INSTANCE

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

```
public static @NonNull ViewModelStoreProvider.ProviderMarkerKey INSTANCE
```