2010-05-08 9 views
5

Meine App initiiert eine Aktivität. Auf Knopfdruck öffnet die App den Browser mit einer Webseite. Wenn ich auf die Zurück-Schaltfläche klicke, wird der ursprüngliche Aktivitätsbildschirm angezeigt, aber die Aktivität wird nicht fortgesetzt oder neu gestartet.Android-Schaltfläche "Zurück" startet die Aktivität nicht neu?

Wenn ich den gesamten Layoutcode und den Aktivitätscode in onResume anstelle von onCreate einfüge, wird die Aktivität neu gestartet.

Meine Frage ist, ob dies der richtige Weg ist, um darüber zu gehen? Kann ich onResume verwenden, um mein Layout zu zeichnen und die Aktivität zu initiieren, oder ist dieses schlechte Design? Wenn der Browser gestartet wird, vergisst die ursprüngliche Aktivität das Layout?

Bitte lassen Sie mich wissen, was Sie vorschlagen.

Dank Chris

Antwort

1

Meistens sollten Sie über die Activity Life Cycle lesen.

Es ist in Ordnung, in onResume zu initialisieren, solange Sie es nur einmal tun. Entweder haben Sie ein dediziertes hasInitialized-Mitglied oder prüfen einen anderen Wert, der eine äquivalente Bedeutung hat, und initialisieren nicht erneut, wenn es gesetzt ist.

+0

Meine Frage ist mehr um die Tatsache, dass die Layout-Erstellung und Aktivität starten in der OnCreate-Methode gestartet Dinge in Ordnung, aber wenn ich aus dem Browser zurückkam, wurde nur das Layout gerendert, aber die Aktivität wurde nicht gestartet. Was genau passiert beim Öffnen des Browsers mit dem Layout? Setzen Sie den gleichen Code in OnResume, startet alles und startet die Aktivität nach dem Drücken der Taste zurück. – Chris

+0

Wenn ich das Layout in OnCreate gezeichnet habe und die Aktivität gestartet habe, wird auf der Zurück-Schaltfläche des Browsers das Layout gerendert, aber die Aktivität wird nicht neu gestartet. Wenn ich in onCreate nichts gemacht habe, aber das Layout in onResume gezeichnet und meine Aktivität gestartet habe, hat die Zurück-Schaltfläche das Layout gerendert und die Aktivität neu gestartet. – Chris

+0

Ich stimme der Antwort zu: Sie sollten die Linked-to-Seite lesen: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle "aber als ich vom Browser zurückkam, nur das Layout wurde gerendert, aber die Aktivität wurde nicht gestartet "- nein, die Aktivität wurde definitiv gestartet, wie durch einen Aufruf von' onStart() 'definiert. – CommonsWare