Speichern des Android Activity-Status mit Save Instance State

Ich habe Android SDK-Plattform, und es ist ein wenig unklar, wie, eine Anwendung zu speichern. So gegeben, diese kleine re-tooling die "Hello, Android" Beispiel:

package com.android.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {

  private TextView mTextView = null;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mTextView = new TextView(this);

    if (savedInstanceState == null) {
       mTextView.setText("Welcome to HelloAndroid!");
    } else {
       mTextView.setText("Welcome back.");
    }

    setContentView(mTextView);
  }
}

Dachte ich, es wäre genug für den einfachsten Fall, aber es reagiert immer mit der ersten Nachricht, egal, wie ich zu navigieren Weg von der app.

Ich bin sicher, die Lösung ist so einfach wie das überschreiben onPause oder so, aber ich habe schon gestöbert entfernt in der Dokumentation für 30 Minuten oder so und habe nicht gefunden was offensichtlich ist.

Kommentar zu dem Problem
Wann ist savedInstanceState == null und wenn es nicht null ist ? Kommentarautor: Trojan.ZBOT
Sie sind explizit die Zerstörung Ihrer Aktivität, indem Sie - wie Sie sagte, verlassen Sie, wie, indem Sie back drücken. Eigentlich ist das Szenario, in dem diese "savedInstanceState" verwendet wird, ist bei Android zerstört, die Ihre Aktivität für die Erholung. Für Herzen lag: Wenn Sie ändern Sie die Sprache Ihres Telefons, während die Aktivität ausgeführt wurde (und damit die verschiedenen Ressourcen aus dem Projekt geladen werden). Ein weiteres sehr häufiges Szenario ist, wenn Sie Ihr Telefon drehen auf die Seite, so dass die Aktivität neu erstellt und angezeigt, in der Landschaft. Kommentarautor: villoren
Auf die zweite Nachricht, aktivieren Sie "Don' T keep activities" in den dev-Optionen. Drücken Sie eine home-Taste und zurück von recents. Kommentarautor: Yaroslav Mytkalyk
Sie können es tun mit : onSaveInstanceState(Bundle savedInstanceState) Kommentarautor: HPbyP

InformationsquelleAutor der Frage Bernard | 2008-09-30

Schreibe einen Kommentar