Ich habe so viele Probleme mit dem Layout mehrerer Aktivitäten gehabt, dass ich davon dringend abraten kann, es sei denn, es gibt einen guten Grund, es auszuwählen.
Nachteil mehrerer Aktivitäten
Bei Verwendung mehrerer Aktivitäten ist es sehr schwierig, Code umzugestalten, um Daten von Aktivitäten zurückzugeben.
Wenn Sie eine Unteraktivität aufrufen, wird die Hauptaktivität möglicherweise beendet. Beim Debuggen auf einem anständigen Gerät tritt dies jedoch nie auf. Daher müssen Sie immer den Status speichern und den Status korrekt wiederherstellen. Das ist ein Schmerz. Stellen Sie sich vor, Sie rufen eine Methode für eine Bibliothek (dh eine andere Aktivität) auf, und Sie müssen sicherstellen, dass Ihre App bei der Rückgabe dieser Methode ihren Status vollständig mit allen Feldern aller Objekte in der VM (dh Aktivität) neu erstellen kann. restoreIntance). Das ist verrückt.
Umgekehrt, wenn Sie eine Subaktivität öffnen, wurde die VM möglicherweise getötet, seit die Subaktivität zum ersten Mal erzeugt wurde, z. B. wenn die App minimiert wird, während die Subaktivität angezeigt wird.
Es ist so viel sauberer, nur einen Ort zu haben, an dem der relevante App-Status gespeichert werden kann. In meinem Fall möchte ich den Benutzer, wenn die VM getötet wird, meistens zum Hauptbildschirm zurückführen und ihn seine Arbeit erneut erledigen lassen, weil ich es nicht tue Verbringen Sie keine 30-50 Stunden mit der Codierung von Funktionen zum Speichern / Fortsetzen, die 0,1% der Benutzer jemals erfahren werden.
Alternative
Fragmente oder verwalten Sie einfach Ihre Aktivitätsansichten selbst. Das manuelle Verwalten von Ansichten erfordert das Codieren einer Ansichtswechselalternative zu Aktivitäten / Fragmenten mit Übergängen, falls gewünscht.
Und nein, es bedeutet nicht eine Mega-Aktivität, wie in der akzeptierten Antwort vorgeschlagen, auf eine andere Weise als die eine Mega-App. Es erfordert nur ein bisschen mehr Design der Codebasis in passende Teile, da es etwas mehr Arbeit beim Verwalten von Ansichten gibt, obwohl viel weniger Arbeit beim Verwalten des Aktivitätsstatus und anderer Verrücktheiten erforderlich ist.
Möglicherweise relevant: Reddit: Es ist offiziell: Google empfiehlt offiziell die App-Architektur für einzelne Aktivitäten