2014-02-25 13 views
14

Ich bin etwas verwirrt zwischen dem Lebenszyklus von zwei Aktivitäten.Lebenszyklus von Android-Aktivität nach Drücken der Zurück-Taste

Angenommen, ich habe Aktivität A und Aktivität B.

B Von A heißt A ----> B genannt wird.

Jetzt ist gerade B auf dem Bildschirm und ich drückte auf die Taste. Hier möchte ich wissen: - Gibt es noch Speicher für B (Active) oder B Speicher wird geleert (Inaktiv).

+1

die 'onDestroy' Methode wird nach dem Zurück Drücken aufgerufen, dann denke ich, es sollte gespült werden. – SMR

+0

@SMR Können Sie weitere Details angeben (irgendeinen Link). –

+1

Jede Aktivität kommt zum Stapel, damit sie ausgeführt wird. Aktivität wird von dem Stapel entfernt, von dem aus Sie auf die Schaltfläche Zurück drücken. Übung B wird aus dem Stapel entfernt. –

Antwort

41

Angenommen, es gibt eine Aktivität A, von der aus Sie Aktivität B starten. Wenn Sie in Aktivität B die Zurück-Schaltfläche drücken, wird Aktivität B vom Stapel entfernt und B befindet sich nicht mehr im Aktivitätsstapel .

Immer wenn Sie eine Aktivität auf den Stapel schieben, wird onCreate aufgerufen, und wenn Sie die Zurück-Taste drücken, wird onDestroy aufgerufen, was bedeutet, dass die Aktivität weggespült wird.

stack

Bitte besuchen Sie mein Blog für weitere Informationen: http://upadhyayjiteshandroid.blogspot.in/2013/02/android-lifecycle.html

activity lifecycle besuchen Sie bitte für mehr

http://developer.android.com/guide/components/tasks-and-back-stack.html

http://developer.android.com/training/basics/activity-lifecycle/starting.html

+1

1. Link ist wirklich hilfreich. Vielen Dank. –

+0

1 wie für diese –

+2

Ich muss eine wichtige Sache hinzufügen, vielleicht wird jemand dafür suchen: Wenn die Zurück-Taste gedrückt wird onSaveInstanceState() wird nicht aufgerufen. –

2

Aktivität B wird zerstört und bleibt nicht mehr im Speicher.

Für weitere Informationen besuchen Sie bitte die official documentation for android und schauen Sie sich die Aktivitätslebenszykluszahl an.

Sobald Sie die Zurück-Taste drücken, wird die onDestroy() - Methode der Aktivität aufgerufen und die Aktivität wird aus dem Speicher gelöscht. Sie müssen dann die Aktivität neu starten, indem Sie die startActivity() -Methode aufrufen, die wiederum ihre onCreate() -Methode aufruft.

+2

Bitte bearbeiten Sie Ihre Antwort mit allen Informationen, wenn Sie könnten, danke. – fasteque

5

Die Methode onDestroy wird nach dem Zurückdruck aufgerufen. Dann wird die Aktivität aus dem Aktivitäts-Back-Stack herausgenommen.

From docs:

Wenn eine Aktivität angehalten oder gestoppt wird, um das System die Aktivität aus dem Speicher entweder fallen kann er seinen Prozess zu beenden fragen, oder zu töten einfach. Wenn es erneut für den Benutzer angezeigt wird, muss es vollständig neu gestartet und in den vorherigen Zustand zurückversetzt werden.

onDestroy()from docs:

Der letzte Anruf, den Sie vor Ihrer Tätigkeit erhalten wird zerstört. Dies kann entweder geschehen, weil die Aktivität beendet wird (jemand mit dem Namen finish() darauf, oder weil das System vorübergehend diese Instanz der Aktivität zerstört, um Speicherplatz zu sparen. Sie können zwischen diesen beiden Szenarien mit der isFinishing()-Methode unterscheiden.

enter image description here

0

Ich würde vorschlagen, verweisen folgende Link gibt

http://stackoverflow.com/a/8516056/3110609 

und folgenden Link für Startmodus von activit y.

www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode 
0

Nach dem Drücken der Zurück-Taste wird Aktivität B zerstört. Sie sehen, Android verwaltet Aktivitäten wie ein Stack(an explanation of a stack). Jedes Mal, wenn du eine Aktivität startest, schiebt sie sich in den Aktivitätsstapel. Wenn Aktivität A Aktivität B aufruft, befindet sich Aktivität B nun oben auf Aktivität B. Wenn Sie die Zurück-Taste drücken, wird auch ein Pop im Aktivitätsstapel angezeigt. Im Konzept ist Aktivität B also weg. Das Drücken einer Home-Taste unterscheidet sich von einem Zurückdrücken, es unterbricht die Aktivität, daher frisst es immer noch etwas vom Speicher des Telefons.

Here ist eine gute Erklärung, wie Android-Aktivitäten verwaltet.

8

Die folgenden Aktivitätsrückrufmethoden werden aufgerufen, nachdem die Schaltfläche Zurück gedrückt wurde.

onPause() 
onStop() 
onDestroy() 

Die Aktivität ist zerstört.

Und es erstellt, wenn erneut gestartet. Dies sind die Rückrufmethoden, wenn sie erneut gestartet werden.

onCreate() 
onStart() 
onResume() 
Verwandte Themen