Dipende dall'app che stai creando. Ho creato diverse app usando entrambi gli approcci e non posso dire che un modo sia sempre migliore dell'altro. L'ultima app che ho creato ho usato il singolo Activity
approccio e una navigazione in stile Facebook. Quando seleziono elementi dall'elenco di navigazione, aggiorno un singolo Fragment
contenitore per visualizzare quella sezione.
Detto questo, avere un singolo Activity
introduce anche molte complessità. Supponiamo che tu abbia un modulo di modifica e che per alcuni degli elementi che l'utente deve selezionare o creare, richieda l'accesso a una nuova schermata. Con le attività che chiameremmo semplicemente con la nuova schermata, startActivityForResult
ma che Fragments
non esiste nulla del genere, si finisce per archiviare il valore su Activity
e fare controllare il frammento di modifica principale Activity
per vedere se i dati sono stati selezionati e devono essere visualizzati all'utente.
Ciò che Aravind dice di essere bloccato su un singolo Activity
tipo è anche vero, ma non è poi così limitante. La tua attività sarebbe un frammento di attività e fintanto che non ne avrai bisogno, non MapView
ci saranno limiti reali. Se vuoi visualizzare le mappe però, puoi farlo, ma dovrai modificare la libreria di compatibilità Android per FragmentActivity
estenderla MapActivity
o utilizzare le android-support-v4-googlemaps pubblicamente disponibili .
Alla fine, la maggior parte degli sviluppatori che conosco e che Activity
sono passati all'unica rotta sono tornati a più attività per semplificare il loro codice. Per quanto riguarda l'interfaccia utente, su un tablet, a volte sei bloccato usando un singolo Activity
solo per ottenere l'interazione sempre folle che i tuoi progettisti escogitano :)
-- MODIFICARE --
Google ha finalmente rilasciato MapFragment
la libreria di compatibilità, quindi non è più necessario utilizzare l'hack android-support-v4-googlemaps. Leggi qui l'aggiornamento: API di Google Maps per Android v2
- MODIFICA 2 -
Ho appena letto questo fantastico post sul moderno stato dei frammenti (2017) e mi sono ricordato di questa vecchia risposta. Ho pensato di condividere: Frammenti: la soluzione a tutti i problemi di Android