Какие знаешь наследники Context

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

Ответ

Context в Android имеет несколько наследников, каждый из которых используется в определённых сценариях:

  1. Activity – контекст UI-элементов, связанных с экраном.
  2. Service – контекст для фоновых операций.
  3. Application – глобальный контекст, живущий весь срок работы приложения.
  4. ContextWrapper – базовый класс для кастомных контекстов (например, тестовых).
  5. ContextThemeWrapper – добавляет поддержку тем (используется в Activity).

Пример:

class MyActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val appContext = applicationContext // Application
        val activityContext = this // Activity
    }
}