2012-07-23 16 views
11

Nehmen wir an, wir haben eine Standard, leere Aktivität mit Standardverhalten, mit Standard-Intent-Flags gestartet. Der Benutzer drückt die Taste am Gerät zurück. Die Aktivität verschwindet ... aber wie eigentlich?Android-Schaltfläche Zurück Verhalten

  • Drücken Sie die Zurück-Taste verhält sich genauso wie finish()?
  • Ist die Aktivität sofort zerstört (onDestroy heißt)?
  • Ist die Aktivität garantiert zerstört, aber nicht sofort?
  • Besteht die Möglichkeit, dass die Aktivität nicht zerstört wird und diese Instanz wiederverwendet wird, wenn diese Aktivität in Zukunft gestartet wird? (So ​​nur und onStop ->onStart und onResume heißen?)

Ich bin für eine zuverlässige Antwort suchen, also bitte nicht beantworten, wenn Sie nicht absolut sicher sind, was hier passiert.

+4

Dies könnte von Interesse sein: http://developer.android.com/training/basics/activity-lifecycle/index.html –

+0

können Sie Ihren Code veröffentlichen, so können wir besser beurteilen –

+1

Gibt es etwas in 'default , leere Aktivität mit Standardverhalten, gestartet mit Flags für Standardabsicht, die Sie nicht reproduzieren können? Erstellen Sie einfach ein Standardprojekt in Ihrer IDE. –

Antwort

6

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

Dies ist ein Unterkapitel aus der offiziellen Android-Dokumentation, die auf deine Frage eingeht. Es ist ein Unterkapitel des Themas Managing the Activity Lifecycle, die hier gelesen werden kann: http://developer.android.com/training/basics/activity-lifecycle/index.html

es auf jeden Fall wert ist das ganze Kapitel zu lesen bekommen die Details über Androids Aktivität Verhalten kennen. Aber das Unterkapitel (erster Link) ist der relevante Teil dieser Frage.

+0

Dies ist eine [Nur-Link-Antwort] (http://meta.stackexchange.com/q/8231/247470), können Sie bitte die relevanten Teile des Dokuments zitieren? Es fühlt sich an, als ob Sie etwas Gutes tun wollen, indem Sie die Leute dazu zwingen, diese Artikel zu lesen, versuchen Sie es mit der sokratischen Methode und verwenden Sie den [Spoiler-Abschlag] (http://meta.stackexchange.com/q/1191/247470). – TWiStErRob

1

Wenn der Benutzer die BACK-Taste drückt, wird die aktuelle Aktivität von der Oberseite des Stapels ausgegeben (die Aktivität wird garantiert zerstört, aber nicht sofort, wenn die Systemressourcen niedrig sind) und die vorherige Aktivität wird fortgesetzt (Der vorherige Status der Benutzeroberfläche wurde wiederhergestellt.)

Which actions does the back button/back key on Android trigger?

+0

Bitte beziehen Sie sich auf diese Frage: http://stackoverflow.com/questions/4778754/kill-activity-on-back-button Wenn es immer zerstört wird, warum zwingen sie finish() auf der Rückseite Taste? –

+0

Überprüfen Sie auch die akzeptierte Antwort hier: http://stackoverflow.com/questions/3249332/did-back-key-destroy-an-activity –

2

Wenn Sie die Taste wieder, (wenn nicht durch so etwas wie die Tastatur abgefangen, Fragment, Aktivität, etc.) das O (via Activity wahrscheinlich) werden versuchen, den Benutzer die vorherige Tätigkeit in der aktuellen Aufgabe zu zeigen, (wiederum, den Rückstapel der Fragmente ignorierend).

Wenn es keine solche Aktivität gibt, wird die Aufgabe beendet und Sie kehren zur vorherigen Aufgabe zurück - meist der Startbildschirm oder eine andere Anwendung, die Ihre App gestartet haben könnte.

Sie werden onDestroy bald anrufen (es hängt davon ab, wie lange es dauert, um die nächste Aktivität zu starten, aber auf einem guten Telefon sollte es unter 100-200ms sein).

Ihre Aktivitätsinstanz wird nach onFinish nicht erneut verwendet. Dies geschieht, bevor die Aktivität zerstört wird. Wenn Sie also eine andere Aktivität desselben Typs benötigen, erstellt das Betriebssystem eine weitere Instanz.

+0

Das ist nicht, was ich gefragt habe. Die Frage ist präzise genug. –

+0

"Die Aktivität verschwindet ... aber wie eigentlich?" - Ich denke, ich habe Ihre Frage adressiert –

+0

Und das ist das Problem mit dir. Sie lesen nur den ersten Satz und antworten ohne nachzudenken. Wenn Sie den Rest lesen würden, würden Sie bemerken, dass ich erklärt habe, worum genau ich bitte. –

2

Sie diese in aussehen verwenden sollten try this

und bitte sagen Sie bestimmte, was Sie für Ihre Standard-Aktivitäten mit Zurück-Taste tun wollen ......

0

Definitly onDestroy() genannt wird ..... Es gibt einige Szenarien, in denen Ihre Aktivität aufgrund der normalen App Verhalten zerstört wird, wie zum Beispiel, wenn der Benutzer die Zurück-Taste oder Ihre Aktivität signalisiert seine eigene Zerstörung durch finish() Aufruf.