Что такое Fragment Result API

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

Ответ

Fragment Result API — это механизм для передачи данных между фрагментами без прямых ссылок. Он использует FragmentManager как посредника, что помогает избежать утечек памяти и упрощает архитектуру.

Ключевые моменты:

  • Отправитель устанавливает результат через setFragmentResult()
  • Получатель подписывается на результат через setFragmentResultListener()
  • Работает даже если получатель не создан в момент отправки

Пример:

// Отправитель
setFragmentResult("requestKey", bundleOf("data" to "Hello!"))

// Получатель
parentFragmentManager.setFragmentResultListener("requestKey", viewLifecycleOwner) { key, bundle ->
    val data = bundle.getString("data")
    // Обработка данных
}

Преимущества перед интерфейсами:

  • Нет жесткой связности
  • Автоматическая отписка при уничтожении LifecycleOwner
  • Поддержка навигации через Navigation Component