Существует много дискуссий о том, следует ли использовать Activities или Fragments.
Например:
- To-Fragment-or-not-to-Fragment
- Одно действие и все остальные фрагменты
- Сколько действий против фрагментов
- Использовать активность или фрагмент в приложении для Android
Большинство обсуждений, которые я нашел, были выпущены до Android 4.2.
С Android 4.2 Google изобрел вложенные фрагменты.
Поэтому я больше не вижу причин использовать более одного Activity.
На ранней стадии Fragments они должны были использоваться в приложениях для поддержки планшетов и смартфонов в удобном для вас режиме одновременно.
Таким образом, например, у вас есть ListView, который может открыть деталь View при щелчке по элементу. На смартфоне мы заменим ListView и покажем подробный View. В то время как Таблетка вместо замены списка с подробным представлением может одновременно отображаться как Views.
Теперь с вложенными Fragments есть много других возможностей. Если вы хотите использовать один Activity, вы можете сохранить общую информацию в Activity, и каждый Fragment получит к ней доступ.
Кроме того, Fragments, у которых есть вложенный Fragments, также может хранить информацию для своих детей Fragments.
С Fragments я могу легко повторно использовать Views, я могу показать более одного Fragment в то же время, и я могу легко сформировать диалог из Fragment. Все это могло бы взять меня, возможно, не больше, чем просто действия с копией и вставкой.
Если я использую Activities, вместо этого я серьезно должен многое изменить, чтобы это сделать.
Недавно я реализовал Приложение, где я легко мог использовать два Fragment-ViewPager, чтобы сделать вещи действительно красивыми и динамичными (некоторая информация: сегодня информация - вчерашняя информация).
По-моему, Fragments облегчит нам жизнь:)
Вопросы:
- Почему я должен использовать более одного
Activity?
Не могли бы вы привести хороший пример, в котором использование нескольких Activities имеет смысл вместо использования Fragments?
- Есть ли хорошие примеры, когда у вас нет выбора, кроме как использовать
Activities?
Я думаю, что большинство более крупных фреймворков, таких как Карты, YouTube и co уже поддерживают Fragments. Поэтому нам не нужно полагаться на Activities.
Также довольно легко иметь дело с NavigationBar, TabHosts, ViewPager, ActionBar, если вы используете Fragments.
От Udacity:
Почему бы не создать одно действие с большим количеством фрагментов?
- Повышенная сложность
- Управление более сложными намерениями
- Трудно читать, поддерживать и тестировать
- Опасность тесной связи
- Вопросы безопасности