# ContextAwareHelper

Artifact: [androidx.activity:activity](https://developer.android.com/jetpack/androidx/releases/activity) [View Source](https://cs.android.com/search?q=file:androidx/activity/contextaware/ContextAwareHelper.kt+class:androidx.activity.contextaware.ContextAwareHelper) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/activity#1.2.0)

*** ** * ** ***


```
class ContextAwareHelper
```

<br />

*** ** * ** ***

Helper class for implementing `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware`. Classes using this helper should call `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)` and `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)` as the respective methods of `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware` are called.

You must call `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)` once the `https://developer.android.com/reference/android/content/Context.html` is available to dispatch the callbacks to all registered listeners.

Listeners added after the context has been made available via `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)` will have the Context synchronously delivered to them up until `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#clearAvailableContext()` is called.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#ContextAwareHelper()()` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)(listener: https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener)` Add a new `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` for receiving a callback for when this class is associated with a `https://developer.android.com/reference/android/content/Context.html`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#clearAvailableContext()()` Clear any `https://developer.android.com/reference/android/content/Context.html` previously made available via `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html)` Dispatch the callback of `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener#onContextAvailable(android.content.Context)` to all currently added listeners in the order they were added. |
| `https://developer.android.com/reference/android/content/Context.html?` | `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#peekAvailableContext()()` Get the `https://developer.android.com/reference/android/content/Context.html` if it is currently available. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)(listener: https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener)` Remove a `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` previously added via `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)`. |

## Public constructors

### ContextAwareHelper

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

```
ContextAwareHelper()
```

## Public functions

### addOnContextAvailableListener

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

```
fun addOnContextAvailableListener(listener: OnContextAvailableListener): Unit
```

Add a new `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` for receiving a callback for when this class is associated with a `https://developer.android.com/reference/android/content/Context.html`.

| Parameters |
|---|---|
| `listener: https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` | The listener that should be added. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)` |   |

### clearAvailableContext

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

```
fun clearAvailableContext(): Unit
```

Clear any `https://developer.android.com/reference/android/content/Context.html` previously made available via `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)`.

### dispatchOnContextAvailable

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

```
fun dispatchOnContextAvailable(context: Context): Unit
```

Dispatch the callback of `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener#onContextAvailable(android.content.Context)` to all currently added listeners in the order they were added.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` | The `https://developer.android.com/reference/android/content/Context.html` the `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware` object is now associated with. |

### peekAvailableContext

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

```
fun peekAvailableContext(): Context?
```

Get the `https://developer.android.com/reference/android/content/Context.html` if it is currently available. If this returns `null`, you can use `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)` to receive a callback for when it available.

| Returns |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html?` | the Context if it is currently available. |

### removeOnContextAvailableListener

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

```
fun removeOnContextAvailableListener(listener: OnContextAvailableListener): Unit
```

Remove a `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` previously added via `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)`.

| Parameters |
|---|---|
| `listener: https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` | The listener that should be removed. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)` |   |