Wenn Sie eine neue Aktivität starten, wird die aktuelle Aktivität auf den Backstack der aktuellen Aufgabe geschoben. (Sie können dieses Verhalten über Flags und/oder das Manifest ändern, aber dies ist das Standardverhalten.) Wenn der Benutzer die Zurück-Funktion drückt, ist die oberste Aktivität beendet und der Stapel wird geöffnet. Das Ergebnis ist, dass der Benutzer die App zur vorherigen Aktivität zurückkehren sieht.
Es ist völlig in Ordnung, nach dem Start einer neuen Aktivität finish()
aufzurufen. Das Ergebnis wird sein, dass die aktuelle Aktivität (die nicht mehr an der Spitze des Stapels liegt, da Sie gerade eine neue begonnen haben) vom Stapel entfernt wird. Wenn der Benutzer dann auf Zurück drückt, wird die vorherige Aktivität auf dem Backstack ausgeführt (oder die App beendet, wenn der Stack leer ist).
Wenn Sie zwischen Aktivitäten A und B hin- und herspringen, indem Sie immer eine neue starten und nie finish()
aufrufen, kann dies zu einer OOM-Ausnahme führen, da der Stack mit Instanzen jeder Aktivität gefüllt wird.
Sie können mehr darüber in dem Leitthema Tasks and Back Stack lesen. Es beschreibt auch, wie man mit dem Radfahren zwischen Aktivitäten richtig umgehen kann.
Was ist, wenn der Benutzer zur vorherigen Aktivität zurückkehren möchte, indem er auf die Schaltfläche Zurück klickt? – Raghunandan
Nein. Ihr Problem ist woanders. – fdreger
Verwenden Sie "Bitmap" (oder eine Sammlung von) überall? Wenn Sie das [mat Memory Analyzer Tool] (http://www.eclipse.org/mat/) noch nicht benutzt haben, ist jetzt eine gute Zeit. – haventchecked