Laut Artikel "Application Fundamentals", Abschnitt "component lifecycle", wird onResume () immer aufgerufen, wenn eine View unabhängig vom vorherigen Status aktiv wird.
Im Notepad-Lernprogramm, Übung 3, habe ich in NoteEdit.java etwas Verwirrendes gefunden:
In onCreate () sowie onResume () gibt es einen Aufruf von populateFields ().
Wäre es nicht genug (oder sogar besser), es nur in onResume () zu haben?
In so einem kleinen Beispiel wird es nichts schaden, wenn populateFields () zweimal ausgeführt wird, aber in einer größeren App können die Dinge anders sein ...
Danke und Grüße,
Markus N.
Aus einem Blick auf Notepad3 würde ich sagen, dass Sie Recht haben. Es scheint keinen Grund dafür zu geben, populateFields()
sowohl in onCreate()
als auch in onResume()
aufzurufen. onResume
ist ausreichend.
Ich kann sehen, wo Sie es an beiden Orten brauchen, wenn Anwendung pausiert, dann würden Sie es in onResume benötigen und wenn Ihr Prozess getötet wird oder der Benutzer zurück zu Aktivität navigiert, dann werden Sie es in onCreate benötigen, besonders wenn Sie einige vor -Verarbeitung.
Laut der Dokumentation ... für onResume () empfehlen sie, sie für leichte Aufrufe zu verwenden, anders als in onCreate ():
"Die Vordergrundlebensdauer einer Aktivität läuft zwischen einem Aufruf von onResume () bis zu einem entsprechenden Aufruf von onPause (). Während dieser Zeit steht die Aktivität vor allen anderen Aktivitäten und interagiert mit dem Benutzer. Eine Aktivität kann häufig zwischen den Status "Wiederaufnahme" und "Pause" wechseln - zum Beispiel wenn das Gerät in den Ruhezustand versetzt wird, wenn ein Aktivitätsergebnis geliefert wird, wenn eine neue Absicht übermittelt wird. Daher sollte der Code in diesen Methoden relativ leicht sein.
Die Notepad-Anwendung möchte möglicherweise eine Variable deklarieren, wenn die Methode bereits von onCreate getroffen wurde, um in onResume () nicht zu wiederholen.