Android - Beispiel für ein Editor - Warum in onCreate auffüllen?

8

Ich habe die Layout-Übung beendet und mich gefragt, warum sie den Aufruf von populateFields() sowohl in onCreate als auch in onResume einschließen.

Laut Aktivitätslebenszyklus wird "onResume" immer vor der Aktivität ausgeführt gezeigt, warum nicht nur dort?

    
theblitz 01.04.2011, 08:47
quelle

3 Antworten

3

Ich habe echten Produktionscode, der Felder füllt und nur in onResume aufgerufen wird und es funktioniert gut. Ich dachte, ein Grund wäre, dass onResume aufgerufen wird, nachdem die Aktivität gezeigt wurde, aber ein wenig Googeln gräbt diesen (meist nicht verwandten) Thread: Ссылка

Quote: onResume () ist also das letzte, was passiert, bevor die Benutzeroberfläche angezeigt wird

Das sagt Dianne Hackborn, also können wir ihr wohl vertrauen:)

    
Torp 01.04.2011, 09:07
quelle
1

Tatsächlich habe ich Apps (in meiner App und auch anderen) gesehen, bei denen Felder nur in onCreate() , aber nicht in onResume() ausgefüllt wurden.

Rufen wir diese App 'A' an.

Der Effekt war, dass, als der Benutzer die Home-Taste drückte, zu einer anderen App ging und dann zu "A" zurückkehrte, der Bildschirm schwarz blieb, da "A" noch im Speicher war und das System sich nicht darum kümmerte rufe onCreate() auf, ging aber direkt in onResume() .

Also im Grunde würde ich sagen (und diese Sekunden, was @Torp schrieb) füllen Sie die Benutzeroberfläche in onResume() und fertig.

Aber dann ist diese Antwort etwas außerhalb des Themas, da sie Ihre "Warum" -Frage nicht beantwortet.

    
Heiko Rupp 01.04.2011 09:29
quelle
0

Sie werden nicht in onResume eingefügt, da es jedes Mal aufgerufen wird, wenn die Aktivität angezeigt wird.

Sie möchten im Allgemeinen so wenige Objekte wie möglich erstellen, damit Sie sie in onCreate ein für allemal erstellen. Dann können Sie immer überprüfen, ob sie in onResume noch aktualisiert werden.

    
Thomas Ahle 18.05.2011 07:58
quelle

Tags und Links