¿Alguien puede ayudarme a saber acerca Bundle savedInstanceState
de onCreate(Bundle savedInstanceState)
que soy un novato en Android? Trato de entenderlo desde developer.android.com. Pero no puedo entender. ¿Alguien puede simplificarlo?
122
Respuestas:
Si guarda el estado de la aplicación en un paquete (por lo general, datos dinámicos no persistentes
onSaveInstanceState
), puede pasar de nuevo aonCreate
si la actividad necesita ser recreada (por ejemplo, cambio de orientación) para que no pierda esto antes información. Si no se proporcionaron datos,savedInstanceState
es nulo.fuente
fuente
onCreate(Bundle savedInstanceState)
Obtendrá elBundle
valor nulo cuando la actividad comience por primera vez y se usará cuando se cambie la orientación de la actividad .......http://www.gitshah.com/2011/03/how-to-handle-screen-orientation_28.html
Android proporciona otra forma elegante de lograr esto. Para lograr esto, tenemos que 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
onCreate
método. También podemos cargar el estado de la instancia guardada en elonRestoreInstanceState
método. Pero lo dejaré para que los lectores lo descubran.fuente
savedInstanceState
será non-null
sionSavedInstanceState()
se llamó previamente. los cambios de orientación son solo un ejemplo en el que esto puede ocurrir.Bundle
argumentoonCreate(Bundle)
será non-null
if y solo siActivity
tenía elonSaveInstanceState
método llamado anteriormente. Esto sucede durante los cambios de orientación ... y también ocurre cuando la actividad regresa después de ser eliminada por el sistema operativo y cuando se activa cualquier otro cambio de configuración de interés en su dispositivo.Como respondió Dhruv Gairola, puede guardar el estado de la aplicación utilizando Bundle savedInstanceState. Estoy tratando de dar un ejemplo muy simple que los nuevos alumnos como yo puedan entender fácilmente.
Supongamos que tiene un fragmento simple con TextView y Button. 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 (es decir, los datos modificados después de hacer clic) 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.
Entonces, podemos guardar el estado significa que el valor de texto modificado en ese paquete como este
Después de hacer la orientación, se llamará al método "onCreate", ¿verdad? para que podamos hacer esto
Ahora, no perderá su valor después de la orientación. El valor modificado siempre se mostrará.
fuente
Función onCreate (Bundle savedInstanceState) en Android:
1) Cuando una actividad llama o se inicia por primera vez, el método onCreate (Bundle savedInstanceState) es responsable de crear la actividad.
2) Cuando alguna vez se cambia la orientación (es decir, de horizontal a vertical o vertical a horizontal) de la actividad o cuando una Actividad se termina de forma forzada por cualquier Sistema Operativo y luego se guarda el Estado de la Entrada, es decir, el objeto de la Clase de Paquete guardará el estado de una Actividad.
3) Después de cambiar la Orientación, entonces onCreate (Bundle savedInstanceState) llamará y recreará la actividad y cargará todos los datos de savedInstanceState.
4) Básicamente, la clase Bundle se usa para almacenar los datos de la actividad siempre que ocurra la condición anterior 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 método es el mejor lugar para colocar el código de inicialización.
6) También puede poner su código de inicialización en onStart () o onResume () y cuando su aplicación se cargue primero, funcionará igual que en onCreate ().
fuente
onCreate(Bundle)
se llama cuando se inicia la actividad 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 poronSaveInstanceState
.fuente
Se llama a onCreate (Bundle savedInstanceState) y savedInstanceState no será nulo si su Actividad y se finalizó en un escenario (vista visual) descrito anteriormente. Su aplicación puede tomar (capturar) los datos de salvadoInstanceState y regenerar su Actividad
fuente