Depende do aplicativo que você está criando. Criei vários aplicativos usando as duas abordagens e não posso dizer que uma maneira é sempre melhor que a outra. O aplicativo mais recente que criei, usei a Activity
abordagem única e uma navegação no estilo do Facebook. Ao selecionar itens da lista de navegação, atualizo um único Fragment
contêiner para exibir essa seção.
Dito isto, ter um single Activity
também apresenta muitas complexidades. Digamos que você tenha um formulário de edição e, para alguns dos itens que o usuário precise selecionar ou criar, exija que eles acessem uma nova tela. Com as atividades, chamaríamos apenas a nova tela, startActivityForResult
mas, como Fragments
não existe, você acaba armazenando o valor no Activity
e fazendo com que o fragmento de edição principal verifique Activity
se os dados foram selecionados e devem ser exibidos ao usuário.
O que Aravind diz sobre ficar preso a um único Activity
tipo também é verdade, mas não é realmente esse limite. Sua atividade seria uma FragmentActivity e, desde que você não precise de um MapView
, não haverá limitações reais. No entanto, se você deseja exibir mapas, isso pode ser feito, mas você precisará modificar a Biblioteca de Compatibilidade do Android para FragmentActivity
estender MapActivity
ou usar o android-support-v4-googlemaps publicamente disponível .
Por fim, a maioria dos desenvolvedores que conheço que seguiram a única Activity
rota retornaram a várias atividades para simplificar seu código. No que diz respeito à interface do usuário, em um tablet, algumas vezes você fica preso usando um único Activity
para alcançar a interação sempre louca que seus designers criam :)
- EDITAR -
O Google finalmente foi lançado MapFragment
na biblioteca de compatibilidade, para que você não precise mais usar o hack android-support-v4-googlemaps. Leia sobre a atualização aqui: API Android do Google Maps v2
- EDIÇÃO 2 -
Acabei de ler este ótimo post sobre o estado moderno (2017) dos fragmentos e lembrei-me dessa resposta antiga. Pensei em compartilhar: Fragmentos: a solução para todos os problemas do Android