Це залежить від програми, яку ви створюєте. Я створив кілька додатків, використовуючи обидва підходи, і не можу сказати, що один спосіб завжди кращий за інший. В останньому створеному нами додатку я використовував єдиний Activityпідхід та навігацію у стилі Facebook. Вибираючи елементи зі списку навігації, я оновлюю один Fragmentконтейнер для відображення цього розділу.
Зауваживши, що сингл Activityтакож створює багато складностей. Скажімо, у вас є форма редагування, а для деяких елементів, які користувач повинен вибрати або створити, вимагає, щоб вони перейшли на новий екран. За допомогою заходів ми просто зателефонуємо на новий екран, startActivityForResultале Fragmentsнемає такого, щоб ви в кінцевому підсумку зберігали значення на Activityта, маючи головний фрагмент редагування, перевіряли, Activityчи дані вибрані та чи повинні відображатися користувачеві.
Те, що говорить Аравінд про приєднання до одного Activityтипу, також є правдою, але насправді не обмежує. Ваша діяльність буде FragmentActivity і до тих пір, поки вам не потрібна MapViewреальна обмеженість. Якщо ви хочете відображати карти, це може бути зроблено, але вам потрібно буде або змінити бібліотеку сумісності Android для FragmentActivityрозширення, MapActivityабо використовувати загальнодоступні програми Android-support-v4-googlemaps .
У кінцевому рахунку більшість розробників, яких я знаю, що пішли одним Activityмаршрутом, повернулися до кількох заходів, щоб спростити свій код. Інтерфейс, розумний, на планшеті ви кілька разів зациклюєтесь на використанні єдиного, Activityщоб досягти того, що коли-небудь шалена взаємодія ваших дизайнерів придумала :)
- EDIT -
Нарешті, Google вийшов MapFragmentу бібліотеку сумісності, тому вам більше не доведеться використовувати хак для android-support-v4-googlemaps. Про оновлення читайте тут: API Google Maps Android v2
- EDIT 2 -
Я просто прочитав цей чудовий пост про сучасний (2017) стан фрагментів і згадав цю стару відповідь. Думав, що я поділюсь: Фрагменти: рішення всіх проблем Android