Task — это единица работы в Android, представляющая собой совокупность Activity, связанных друг с другом. Activity в одном Task располагаются в стеке (back stack) в порядке их открытия.
Используется для:
- Управления жизненным циклом Activity: Task определяет видимость и доступность Activity.
- Навигации между приложениями: При запуске Activity из другого приложения, она обычно помещается в его Task.
- Определения поведения кнопки "Назад": Кнопка "Назад" последовательно закрывает Activity в текущем Task.
- Изоляции Activity: Activity из разных Task по умолчанию не взаимодействуют напрямую.
Примеры использования:
- Обычное использование приложения: Открытие разных экранов (Activity) в рамках одного Task.
- Запуск галереи из мессенджера: Галерея открывается в своем Task, а после выбора изображения возвращаемся в Task мессенджера.
- Обработка уведомлений: Открытие Activity из уведомления может создать новый Task или использовать существующий, в зависимости от флагов намерения.
Особое поведение Task:
- Каждый Task может иметь только одну корневую Activity.
- Новый Task создается, когда Activity запускается со флагом
FLAG_ACTIVITY_NEW_TASK.
- Существующий Task может быть перенесен на передний план, если вызывается Activity, уже являющаяся его частью, с флагом
FLAG_ACTIVITY_SINGLE_TOP или FLAG_ACTIVITY_CLEAR_TOP.
kotlin