# androidx.activity.contextaware

*** ** * ** ***

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware` | A `ContextAware` class is associated with a `https://developer.android.com/reference/android/content/Context.html` sometime after the class is instantiated. |
| `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/OnContextAvailableListener` | Listener for receiving a callback at the first moment a `https://developer.android.com/reference/android/content/Context.html` is made available to the `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware` class. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAwareHelper` | Helper class for implementing `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware`. |

## Extension functions summary

|---|---|
| `suspend inline R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/activity/contextaware/ContextAware.https://developer.android.com/reference/kotlin/androidx/activity/contextaware/package-summary#(androidx.activity.contextaware.ContextAware).withContextAvailable(kotlin.Function1)( crossinline onContextAvailable: (https://developer.android.com/reference/android/content/Context.html) -> R )` Run `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/package-summary#(androidx.activity.contextaware.ContextAware).withContextAvailable(kotlin.Function1)` when the `https://developer.android.com/reference/android/content/Context.html` becomes available and resume with the result. |

## Extension functions

### ContextAware.withContextAvailable

Artifact: [androidx.activity:activity](https://developer.android.com/jetpack/androidx/releases/activity) [View Source](https://cs.android.com/search?q=file:androidx/activity/contextaware/ContextAware.kt+function:withContextAvailable)

```
suspend inline fun <R : Any?> ContextAware.withContextAvailable(
    crossinline onContextAvailable: (Context) -> R
): R
```

Run `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/package-summary#(androidx.activity.contextaware.ContextAware).withContextAvailable(kotlin.Function1)` when the `https://developer.android.com/reference/android/content/Context.html` becomes available and resume with the result.

If the `https://developer.android.com/reference/android/content/Context.html` is already available, `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/package-summary#(androidx.activity.contextaware.ContextAware).withContextAvailable(kotlin.Function1)` will be synchronously called on the current coroutine context. Otherwise, `https://developer.android.com/reference/kotlin/androidx/activity/contextaware/package-summary#(androidx.activity.contextaware.ContextAware).withContextAvailable(kotlin.Function1)` will be called on the UI thread immediately when the Context becomes available.