Как внутри Compose функции получить контекст

«Как внутри Compose функции получить контекст» — вопрос из категории Jetpack Compose, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Compose контекст можно получить с помощью LocalContext.current. Это доступно через композицию и предоставляет текущий Context активити/фрагмента.

Пример:

@Composable
fun MyComposable() {
    val context = LocalContext.current
    Button(onClick = { 
        Toast.makeText(context, "Clicked!", Toast.LENGTH_SHORT).show() 
    }) {
        Text("Show Toast")
    }
}

Важно:

  • Используйте контекст только для UI-логики (Toasts, запуск активити и т.д.).
  • Для доступа к Resources предпочтительнее использовать LocalConfiguration.current или stringResource().
  • Не храните контекст в переменных вне композиции (риск утечки).