Что такое Context в Jetpack Compose

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

Ответ

В Jetpack Compose Context — это объект android.content.Context, доступный через модификатор LocalContext.current. Он предоставляет доступ к ресурсам, системным сервисам и другим Android-специфичным функциям.

Пример использования:

@Composable
fun ShowToast() {
    val context = LocalContext.current
    Button(onClick = { 
        Toast.makeText(context, "Hello!", Toast.LENGTH_SHORT).show() 
    }) {
        Text("Click me")
    }
}

Важно:

  • Не храните Context в композаблах или запоминаемых объектах (remember), так как он может измениться (например, при смене темы).
  • Для доступа к Activity используйте context как Activity, но только если уверены, что композабл вызывается в пределах Activity.