Это зависит от приложения, которое вы создаете. Я создал несколько приложений, используя оба подхода, и не могу сказать, что один способ всегда лучше другого. В последнем приложении, которое я создал, я использовал единый Activity
подход и навигацию в стиле Facebook. При выборе элементов из списка навигации я обновляю один Fragment
контейнер для отображения этого раздела.
Тем не менее, наличие сингла Activity
также создает много сложностей. Допустим, у вас есть форма редактирования, и для некоторых элементов, которые пользователь должен выбрать или создать, требуется, чтобы они перешли на новый экран. В случае действий мы просто вызываем новый экран с, startActivityForResult
но с Fragments
этим нет такой вещи, поэтому вы в конечном итоге сохраняете значение в Activity
и имея основной фрагмент редактирования, проверяете, Activity
выбраны ли данные и должны ли они отображаться пользователю.
То, что Аравинд говорит о привязанности к одному Activity
типу, также верно, но на самом деле это не ограничение. Ваша деятельность будет FragmentActivity, и пока вы не нуждаетесь в MapView
ней, реальных ограничений нет. Однако если вы хотите отображать карты, это можно сделать, но вам нужно либо изменить библиотеку совместимости Android, чтобы она FragmentActivity
расширялась, MapActivity
либо использовать общедоступные android-support-v4-googlemaps .
В конечном счете большинство разработчиков, которых я знаю, пошли одним Activity
путем и вернулись к множеству Деятельностей, чтобы упростить их код. UI мудро, на планшете, вы несколько раз застряли, используя один Activity
только для того, чтобы добиться какого-то безумного взаимодействия, которое придут ваши дизайнеры :)
-- РЕДАКТИРОВАТЬ --
Google наконец-то выпустил MapFragment
библиотеку совместимости, так что вам больше не нужно использовать хак с android-support-v4-googlemaps. Об обновлении читайте здесь: Google Maps Android API v2
- РЕДАКТИРОВАТЬ 2 -
Я только что прочитал этот замечательный пост о современном (2017) состоянии фрагментов и вспомнил этот старый ответ. Думал, что поделюсь: Фрагменты: решение всех проблем Android