¿Cómo guardar un estado de actividad usando guardar estado de instancia?

He estado trabajando en la plataforma Android SDK y no está claro cómo guardar el estado de una aplicación. Entonces, dada esta pequeña remodelación del ejemplo 'Hola, Android':

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);
  }
}

Pensé que sería suficiente para el caso más simple, pero siempre responde con el primer mensaje, sin importar cómo navegue fuera de la aplicación.

Estoy seguro de que la solución es tan simple como anular. onPause o algo así, pero he estado hurgando en la documentación durante 30 minutos más o menos y no he encontrado nada obvio.

preguntado el 30 de septiembre de 08 a las 02:09

¿Cuándo es SavedInstanceState == nulo y cuándo no es nulo? -

Estás destruyendo explícitamente tu actividad, como dijiste, alejándote de ella, por ejemplo, presionando hacia atrás. En realidad, el escenario en el que se usa este 'SavedInstanceState' es cuando Android destruye tu actividad para la recreación. Por ejemplo: si cambia el idioma de su teléfono mientras se ejecuta la actividad (y por lo tanto, es necesario cargar diferentes recursos de su proyecto). Otro escenario muy común es cuando gira su teléfono hacia un lado para que la actividad se vuelva a crear y se muestre en paisaje. -

Para obtener el segundo mensaje, habilite "No mantener actividades" en las opciones de desarrollo. Presiona un botón de inicio y vuelve de los últimos. -

puede hacerlo con: onSaveInstanceState (Bundle SavedInstanceState) -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.