savedinstancestate not called activity android bundle oncreate

not - savedinstancestate android



Qué es onCreate(Bundle savedInstanceState) (6)

¿Alguien puede ayudarme a saber sobre el Bundle savedInstanceState en onCreate(Bundle savedInstanceState) ? Soy novato en Android. Intento entenderlo desde developer.android.com. Pero no soy capaz de entender ¿Alguien puede simplificarlo?


Como respondió Dhruv Gairola, puede guardar el estado de la aplicación utilizando Bundle savedInstanceState. Estoy tratando de dar un ejemplo muy simple que nuevos alumnos como yo puedan entender fácilmente.

Supongamos que tiene un fragmento simple con un TextView y un botón. Cada vez que hace clic en el botón, el texto cambia. Ahora, cambie la orientación de su dispositivo / emulador y observe que perdió los datos (significa los datos modificados después de hacer clic en obtener) y el fragmento comienza como la primera vez. Al usar Bundle savedInstanceState, podemos deshacernos de esto. Si echas un vistazo al ciclo de vida del fragmento. Fragment Lifecylce obtendrá que se llama a un método "onSaveInstanceState" cuando el fragmento está a punto de destruirse.

Por lo tanto, podemos guardar el estado significa el valor de texto modificado en ese paquete como este

int counter = 0; @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("value",counter); }

Después de realizar la orientación, se llamará al método "onCreate" ¿correcto? entonces podemos hacer esto

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(savedInstanceState == null){ //it is the first time the fragment is being called counter = 0; }else{ //not the first time so we will check SavedInstanceState bundle counter = savedInstanceState.getInt("value",0); //here zero is the default value } }

Ahora, no perderás tu valor después de la orientación. El valor modificado siempre se mostrará.


Función onCreate (Bundle savedInstanceState) en Android:

1) Cuando se ejecuta una primera actividad o se inicia el método onCreate (Bundle savedInstanceState) es responsable de crear la actividad.

2) Cuando se cambia la orientación (es decir, de horizontal a vertical o vertical a horizontal) de la actividad o cuando una actividad se ve obligada a terminar por un sistema operativo, savedStateState es decir, el objeto de Bundle Class guardará el estado de una actividad.

3) Después de la Orientación modificada, onCreate (Bundle savedInstanceState) llamará y volverá a crear la actividad y cargará todos los datos de savedInstanceState.

4) Básicamente, la clase Bundle se usa para almacenar los datos de actividad cada vez que ocurre una condición superior en la aplicación.

5) onCreate () no es necesario para las aplicaciones. Pero la razón por la que se usa en la aplicación es porque ese es el mejor lugar para colocar el código de inicialización.

6) También podría poner su código de inicialización en Inicio () o en Reanudar () y cuando la aplicación se cargue primero, funcionará igual que en Crear ().


Se llama a onCreate (Bundle savedInstanceState) y savedInstanceState no será nulo si su Activity y se terminó en un escenario (vista visual) descrito anteriormente. Su aplicación puede tomar (capturar) los datos de savedInstanceState y regenerar su actividad


Si guarda el estado de la aplicación en un paquete (generalmente datos dinámicos no persistentes en onSaveInstanceState ), se puede pasar de nuevo a onCreate si la actividad necesita ser recreada (por ejemplo, cambio de orientación) para que no pierda esta información previa. Si no se suministraron datos, savedInstanceState es nulo.

... debe usar el método onPause () para escribir datos persistentes (como ediciones del usuario) en el almacenamiento. Además, se llama al método onSaveInstanceState (Bundle) antes de colocar la actividad en dicho estado de fondo, lo que le permite guardar cualquier estado de instancia dinámico en su actividad en el Bundle dado, para ser posteriormente recibido en onCreate (Bundle) si la actividad necesita ser recreado Consulte la sección Ciclo de vida del proceso para obtener más información sobre cómo el ciclo de vida de un proceso está vinculado a las actividades que está organizando. Tenga en cuenta que es importante guardar los datos persistentes en onPause () en lugar de onSaveInstanceState (Bundle) porque este último no forma parte de las devoluciones de llamada del ciclo de vida, por lo que no se invocará en todas las situaciones como se describe en su documentación.

source


onCreate(Bundle savedInstanceState) obtendrá el Bundle null cuando la actividad get comience la primera vez y se pondrá en uso cuando la orientación de la actividad cambie .......

http://www.gitshah.com/2011/03/how-to-handle-screen-orientation_28.html

Android proporciona otra forma elegante de lograr esto. Para lograr esto, debemos anular un método llamado onSaveInstanceState() . La plataforma Android permite a los usuarios guardar cualquier estado de instancia. El estado de la instancia se puede guardar en el paquete. El paquete se pasa como argumento al método onSaveInstanceState.

podemos cargar el estado de la instancia guardada del paquete pasado como argumento al método onCreate . También podemos cargar el estado de la instancia guardada en el método onRestoreInstanceState . Pero dejaré eso para que los lectores lo descubran.


onCreate(Bundle) cuando la actividad se inicia por primera vez. Puede usarlo para realizar una inicialización única, como crear la interfaz de usuario. onCreate() toma un parámetro que es nulo o alguna información de estado previamente guardada por onSaveInstanceState .