Что нельзя достать у Application контекста

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

Ответ

Application context не предоставляет доступ к UI-зависимым операциям, так как не привязан к конкретной Activity. Примеры ограничений:

  1. Нельзя показывать Toast без флага FLAG_ACTIVITY_NEW_TASK:
// Будет crash без флага
Toast.makeText(applicationContext, "Hello", Toast.LENGTH_SHORT).show()
  1. Нельзя запускать диалоги (AlertDialog и т.п.) - требуется Activity context.

  2. Нельзя использовать для LayoutInflater с UI-атрибутами:

// Лучше использовать Activity context
val view = LayoutInflater.from(applicationContext).inflate(R.layout.item, null)
  1. Ограниченный доступ к системным сервисам (например, getSystemService() для оконных менеджеров).

Всегда используйте Activity context для UI-операций, а Application context - для долгоживущих процессов или когда UI не требуется.