В этом блоге обобщены причины выбора фрагментов вместо действий:
Встроенные действия через ActivityGroup
была хорошая идея, но всегда была
трудно иметь дело с тех пор
разработан, чтобы быть независимым
автономный компонент вместо
тесно взаимодействуя с другими
деятельность. Fragment API - это очень
лучшее решение для этого, и следует
рассматриваться как замена
встроенные действия.
Сохранение данных в Деятельности
случаи могут быть достигнуты
через
Activity.onRetainNonConfigurationInstance (),
но это довольно клунки и
не очевидно. Фрагмент заменяет это
механизм, позволяющий вам сохранить
весь экземпляр фрагмента просто
установка флага.
Специализация фрагмента называется
DialogFragment позволяет легко показать
Диалог, который управляется как часть
Жизненный цикл деятельности. Это заменяет
API-интерфейсы «управляемого диалога».
Еще одна специализация фрагмента
называется ListFragment позволяет легко
показать список данных. Это похоже
к существующей ListActivity (с
еще несколько функций), но следует уменьшить
общий вопрос о том, как показать
a> список с некоторыми другими данными.
Информация обо всех фрагментах
в настоящее время привязан к деятельности
сохранено для вас в рамках
сохраненное состояние экземпляра активности и
восстановлен для вас, когда он перезапускается.
Это может значительно уменьшить количество
состояние сохранить и восстановить код, который вам нужен
написать себе.
Фреймворк имеет встроенную поддержку
управление бэк-стеком фрагмента
объекты, облегчающие предоставление
поведение кнопки «Назад» во время активности
которая объединяет существующую деятельность
задний стек. Это состояние также сохраняется
и восстанавливается для вас автоматически.
Фрагменты довольно новы, поэтому, помимо этой статьи, я не уверен, что вы найдете много для лучших практик. Я думаю, что решение, которое вам нужно принять, заключается в том, что мои взаимодействия тесно связаны и предназначены для обмена данными, или они представляют собой отдельные компоненты, которые не имеют большого взаимодействия.
редактировать, уточнять : я думаю, что использование одного действия для приложения не обязательно является плохим решением. Это действительно решение, которое вы должны принять на основе функциональности вашего приложения. Исходя из статьи, действие является отдельным, а фрагмент, как правило, имеет значение только в сочетании с другими фрагментами в области действия. Ситуация, которую вы описываете, с комбинациями различных действий, является одной из болевых точек, которые они разработали для решения Фрагментов.