Junior
45
questionbank

Как осуществляется навигация между Activity в Android?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Навигация между Activity осуществляется с помощью Intent.

Intent — это объект обмена сообщениями, который позволяет компонентам (таким как Activity, Services, Broadcast Receivers) запрашивать действия друг у друга.

Существует два основных типа Intent:

  • Явные Intent: Указывают конкретный компонент для запуска (например, класс Activity).
  • Неявные Intent: Указывают тип действия, которое нужно выполнить (например, посмотреть веб-страницу), и система Android выбирает подходящий компонент для его выполнения.

Для запуска новой Activity с помощью явного Intent используется метод startActivity().

kotlin

Для передачи данных между Activity можно использовать метод putExtra() объекта Intent:

kotlin

Для получения результата из запущенной Activity, а не просто запуска новой, используется startActivityForResult(). После завершения дочерней Activity она может отправить результат обратно с помощью setResult() и finish(). Родительская Activity получает этот результат в методе onActivityResult().

kotlin

Начиная с AndroidX, рекомендуется использовать Activity Results API вместо startActivityForResult()/onActivityResult():

kotlin

Также для более сложной навигации в современных Android-приложениях часто используется компонента Navigation из Jetpack:

  • Navigation Component: Позволяет определить навигационный граф, описывающий все возможные пути между экранами приложения. Использует NavController для управления перемещением по графу.
xml
kotlin

Navigation Component упрощает реализацию навигации, включая передачу аргументов, поддержку диалоговых окон и управление back stack.