Це залежить від програми, яку ви створюєте. Я створив кілька додатків, використовуючи обидва підходи, і не можу сказати, що один спосіб завжди кращий за інший. В останньому створеному нами додатку я використовував єдиний 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