# 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)

*** ** * ** ***


```
public final class ContextAwareHelper
```

<br />

*** ** * ** ***

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

You must call `https://developer.android.com/reference/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/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)` will have the Context synchronously delivered to them up until `https://developer.android.com/reference/androidx/activity/contextaware/ContextAwareHelper#clearAvailableContext()` is called.

## Summary

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

| ### Public methods |
|---|---|
| `final void` | `https://developer.android.com/reference/androidx/activity/contextaware/ContextAwareHelper#addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/activity/contextaware/OnContextAvailableListener listener )` Add a new `https://developer.android.com/reference/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`. |
| `final void` | `https://developer.android.com/reference/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/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)`. |
| `final void` | `https://developer.android.com/reference/androidx/activity/contextaware/ContextAwareHelper#dispatchOnContextAvailable(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context)` Dispatch the callback of `https://developer.android.com/reference/androidx/activity/contextaware/OnContextAvailableListener#onContextAvailable(android.content.Context)` to all currently added listeners in the order they were added. |
| `final https://developer.android.com/reference/android/content/Context.html` | `https://developer.android.com/reference/androidx/activity/contextaware/ContextAwareHelper#peekAvailableContext()()` Get the `https://developer.android.com/reference/android/content/Context.html` if it is currently available. |
| `final void` | `https://developer.android.com/reference/androidx/activity/contextaware/ContextAwareHelper#removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/activity/contextaware/OnContextAvailableListener listener )` Remove a `https://developer.android.com/reference/androidx/activity/contextaware/OnContextAvailableListener` previously added via `https://developer.android.com/reference/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)

```
public ContextAwareHelper()
```

## Public methods

### addOnContextAvailableListener

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

```
public final void addOnContextAvailableListener(
    @NonNull OnContextAvailableListener listener
)
```

Add a new `https://developer.android.com/reference/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 |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/activity/contextaware/OnContextAvailableListener listener` | The listener that should be added. |

| See also |
|---|---|
| `https://developer.android.com/reference/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)

```
public final void clearAvailableContext()
```

Clear any `https://developer.android.com/reference/android/content/Context.html` previously made available via `https://developer.android.com/reference/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)

```
public final void dispatchOnContextAvailable(@NonNull Context context)
```

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

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html` the `https://developer.android.com/reference/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)

```
public final Context peekAvailableContext()
```

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/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)

```
public final void removeOnContextAvailableListener(
    @NonNull OnContextAvailableListener listener
)
```

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

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

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