8 Stimmen

Android - Notepad Beispiel - Warum in onCreate auffüllen?

Ich habe die Layout-Übung beendet und frage mich, warum sie den Aufruf zu populateFields() in beiden onCreate y onResume .

Según Lebenszyklus der Aktivität "onResume" wird immer ausgeführt, bevor die Aktivität angezeigt wird, warum also nicht genau dort?

3voto

Torp Punkte 7894

Ich habe echten Produktionscode, der Felder auffüllt und nur in onResume aufgerufen wird, und es funktioniert einwandfrei. Ich dachte, ein Grund wäre, dass vielleicht onResume aufgerufen wird, nachdem die Aktivität angezeigt wird, aber ein bisschen googeln gräbt diese (meist nicht verwandte) Thread: http://groups.google.com/group/Android-developers/browse_thread/thread/ddea4830bedf8c6c?pli=1

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

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

1voto

Heiko Rupp Punkte 29262

Tatsächlich habe ich Anwendungen gesehen (in meiner Anwendung und auch in anderen), bei denen die Felder nur in onCreate() , aber nicht in onResume() .

Nennen wir diese Anwendung "A".

Wenn der Benutzer die Home-Taste drückte, zu einer anderen Anwendung wechselte und dann zu "A" zurückkehrte, blieb der Bildschirm schwarz, da "A" immer noch im Speicher war und das System sich daher nicht die Mühe machte, "A" aufzurufen. onCreate() sondern ging direkt in die onResume() .

Also im Grunde würde ich sagen (und dies Sekunden, was @Torp schrieb) füllen Sie die UI in onResume() und fertig sein.

Aber diese Antwort geht etwas am Thema vorbei, denn sie beantwortet nicht Ihre Frage nach dem "Warum".

0voto

Thomas Ahle Punkte 29242

Sie brauchen onResume nicht auszufüllen, da es jedes Mal aufgerufen wird, wenn die Aktivität angezeigt wird.

Im Allgemeinen möchten Sie so wenig Objekte wie möglich erstellen, also erstellen Sie sie ein für alle Mal in onCreate, und dann können Sie immer überprüfen, ob sie in onResume noch aktualisiert werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X