Dies hängt von der App ab, die Sie erstellen. Ich habe mehrere Apps mit beiden Ansätzen erstellt und kann nicht sagen, dass ein Weg immer besser ist als der andere. In der neuesten App, die ich erstellt habe, habe ich den Single- ActivityAnsatz und eine Navigation im Facebook-Stil verwendet. Bei der Auswahl von Elementen aus der Navigationsliste aktualisiere ich einen einzelnen FragmentContainer, um diesen Abschnitt anzuzeigen.
Das heißt, eine Single zu haben, bringt Activityauch eine Menge Komplexität mit sich. Angenommen, Sie haben ein Bearbeitungsformular, und für einige der Elemente, die der Benutzer auswählen oder erstellen muss, müssen sie zu einem neuen Bildschirm wechseln. Bei Aktivitäten würden wir nur den neuen Bildschirm mit aufrufen, startActivityForResultaber mit Fragmentsgibt es so etwas nicht, sodass Sie am Ende den Wert auf dem speichern Activityund das Hauptbearbeitungsfragment überprüfen lassen Activity, ob Daten ausgewählt wurden und dem Benutzer angezeigt werden sollen.
Was Aravind über das Festhalten an einem einzigen ActivityTyp sagt, ist ebenfalls wahr, aber nicht wirklich so einschränkend. Ihre Aktivität wäre eine FragmentActivity und solange Sie keine benötigen, MapViewgibt es keine wirklichen Einschränkungen. Wenn Sie zwar Karten anzeigen möchten, können Sie dies tun, aber Sie müssen entweder die Android-Kompatibilitätsbibliothek ändern, um sie zu FragmentActivityerweitern, MapActivityoder die öffentlich verfügbaren Android-Support-v4-Google-Karten verwenden .
Letztendlich sind die meisten Entwickler, von denen ich weiß, dass sie den einen ActivityWeg gegangen sind, zu mehreren Aktivitäten zurückgekehrt, um ihren Code zu vereinfachen. In Bezug auf die Benutzeroberfläche stecken Sie auf einem Tablet manchmal fest, wenn Sie Activitynur eine verwenden, um die verrückte Interaktion zu erreichen, die Ihre Designer sich einfallen lassen :)
- BEARBEITEN -
Google hat endlich MapFragmentdie Kompatibilitätsbibliothek freigegeben , sodass Sie den android-support-v4-googlemaps-Hack nicht mehr verwenden müssen. Lesen Sie hier mehr über das Update: Google Maps Android API v2
- BEARBEITEN 2 -
Ich habe gerade diesen großartigen Beitrag über den modernen Zustand von Fragmenten (2017) gelesen und mich an diese alte Antwort erinnert. Ich dachte, ich würde teilen: Fragmente: Die Lösung für alle Probleme von Android