[Android] Acerca del ciclo de vida onSaveInstanceState de la actividad

Recientemente, cuando estaba en una entrevista para un trabajo en una empresa importante, me preguntaron sobre el ciclo de vida de la Actividad. El entrevistador preguntó enfáticamente onSaveInstanceStatesi la llamada fue antes o después de onStop. En ese momento estaba un poco confundido y no había pagado. Atención a si fue antes o después de onStop. .

¿Pero importa cuándo se llama a este método? Simplemente lo usamos para guardar datos y luego onRestoreInstanceStaterestaurarlos.

Independientemente de si es importante o no, como el entrevistador preguntó al respecto y tú no lo sabes, ve y verifícalo.

Más tarde, el autor escribió personalmente el código para verificarlo y descubrió que se llamaba después de onStop. Al mismo tiempo, también leí las respuestas de otras personas en línea y descubrí que muchos materiales se escribieron después de onPause y antes de onStop. ¿No es confiable que lo haya verificado personalmente?

Luego, el autor fue al sitio web oficial de Google para comprobar su descripción oficial y, después de leerlo, me sorprendió. ¡Resulta que hay mucho que aprender sobre este onSaveInstanceStatemétodo!

Primero haz una captura de pantalla:

Insertar descripción de la imagen aquí

Se puede ver en la descripción oficial que este método se utiliza para guardar datos cuando el sistema elimina la Actividad. Podemos restaurar los datos cuando se restaura la Actividad o durante el ciclo de onCreatevida onRestoreInstanceState.

El punto clave es que el último párrafo de la descripción señala que si onSaveInstanceStatese llama, si la plataforma de destino de la aplicación es Android P (9), onSaveInstanceStatese llamará después de onStop. Si la plataforma de destino es anterior a Android 9, onSaveInstanceStatese llamará después de onStop. Se llamará antes de onStop y no se garantiza que sea onPause. Se llama antes o después.

Ahora finalmente sé por qué mi verificación fue después de onStop, pero mi perfil en línea decía que fue antes de onStop.

Entonces, onRestoreInstanceState¿existen diferencias similares?

Insertar descripción de la imagen aquí
Dependiendo de la situación, este método se llama entre y, no hay diferencia de versión onStart.onPostCreate

Supongo que te gusta

Origin blog.csdn.net/devnn/article/details/133081696
Recomendado
Clasificación