2016-05-11 7 views
3

Ich bin neu in der Android-Entwicklung, aber ich habe einige Kenntnisse über OOP-Konzepte. Ich versuche, Android aus Java Perspektive zu lernen.Was ist 'savedInstanceState'?

My code

Ich verstehe, dass savedInstanceState innerhalb onCreate() in Zeile 9 die Erklärung von Bundle-Klasse ist. In Zeile 10 rufen wir die onCreate() Methode aus der Superklasse auf. Hier

ist das, was ich nicht unterstand: In Zeile 10 geben wir savedInstanceState sich als Parameter an die onCreate() Methode. Dies ergibt für mich keinen Sinn, da ich erwarten würde, ein Objekt vom Typ Bundle zu übergeben, aber statt dessen übergeben wir eine Referenz und kein Objekt vom Typ Bündel an die Methode.

+1

Ich denke, Ihre Verwirrung nichts mit dem Code zu tun hat, aber alles mit Ihrem Verständnis Referenzen und Objekte. 'onCreate()' erwartet einen 'Bundle'-Parameter, savedInstanceState ist ein 'Bundle', daher gibt es hier kein Problem. –

+0

Siehe hier http://Stackoverflow.com/a/10810447/5202007 Oder https://blog.pivotal.io/labs/labs/android-savedinstancestate-bundle-faq Oder http://stackoverflow.com/questions/151777/saving-activity-state-on-android Oder http://stackoverflow.com/questions/9846817/when-is-the-savedinstancestate-bundle-actually-used – Tauqir

+0

@Tauqir Ich denke, dass Sie den Punkt der Frage vollständig vermissen . –

Antwort

3

Der savedInstanceState ist eine Referenz auf ein Bundle-Objekt, das an die onCreate-Methode jeder Android-Aktivität übergeben wird.

Die onCreate() erwartet mit einem Bundle als Parameter aufgerufen werden, so dass wir SavedInstanceState übergeben.

Aktivitäten können unter bestimmten Umständen mit den in diesem Bundle gespeicherten Daten einen früheren Status wiederherstellen. Wenn keine Instanzdaten verfügbar sind, ist der savedInstanceState gleich null. Der SavedInstanceState ist beim ersten Start einer Aktivität immer Null, kann jedoch nicht null sein, wenn eine Aktivität während der Rotation zerstört wird, da onCreate jedes Mal aufgerufen wird, wenn eine Aktivität gestartet oder neu gestartet wird.

Hoffe, dass es

-1

hilft Wenn eine Aktivität neu initialisiert, dann wird der savedInstance enthält die neuesten Daten, speziell enthält die Daten der vorherigen Initialisierung Teil der Aktivität.

Eigentlich, wenn eine Aktivität getötet wird gerettet seine Zustände, so dass, wenn der Benutzer zurück zu dieser Aktivität, kann es seine Zustände wiederherstellen

Verwandte Themen