S5 · Callbacks, trazas y conservación del estado
Bloques S14–S15 y matices de S17. Cuatro opciones y una sola correcta por pregunta. Las trazas siguen el comportamiento estándar de Android.
Ciclo visible
¿Entre qué dos callbacks transcurre el ciclo de vida visible de una actividad?
-
onCreate()yonDestroy().Es el ciclo completo.
-
onStart()yonStop().Correcta (S14.2).
-
onResume()yonPause().Es el ciclo en primer plano.
-
onRestart()yonResume().No delimita ningún bucle.
Repasar: S14.2.
Ciclo en primer plano
¿Qué caracteriza al ciclo en primer plano (onResume()–onPause())?
- Ocurre una sola vez en toda la vida de la actividad.
Cambia con mucha frecuencia.
- La actividad no es visible.
Está al frente de todas.
- La actividad está al frente y tiene el foco; cambia a menudo, así que el código de esos métodos debe ser ligero.
Correcta (S14.2).
- Es el lugar para definir el diseño con
setContentView.Eso se hace en
onCreate.
Repasar: S14.2.
Dónde va cada tarea
Según el temario, una actividad crea un subproceso que descarga datos de la red en segundo plano. ¿Dónde se crea y dónde se detiene?
- Se crea en
onResume()y se detiene enonPause().El ejemplo del temario usa el ciclo completo.
- Se crea en
onStart()y se detiene enonRestart().No.
- Se crea en
onPause()y se detiene enonResume().Invierte el orden.
- Se crea en
onCreate()y se detiene enonDestroy().Correcta (S14.2).
Repasar: S14.2.
Abrir la app
El usuario abre la app y aparece la actividad A. ¿Qué secuencia de callbacks recibe A?
-
onCreate→onStart→onResume.Correcta (S14.4).
-
onStart→onCreate→onResume.onCreateva primero. -
onCreate→onResume→onStart.onStartva antes deonResume. -
onRestart→onStart→onResume.onRestartsolo aparece al volver de detenida.
Repasar: S14.4.
A abre B
La actividad A, reanudada, inicia la actividad B a pantalla completa. ¿Qué secuencia es correcta?
- A
onStop→ BonCreate→ BonStart→ BonResume→ AonPause.Invierte la pausa y la detención de A.
- A
onPause→ BonCreate→ BonStart→ BonResume→ AonStop.Correcta: A se pausa antes de crear B y se detiene cuando B ya se ve (S14.4).
- A
onPause→ AonStop→ AonDestroy→ BonCreate.A no se destruye: queda en la pila.
- B
onCreate→ BonStart→ BonResume→ AonPause→ AonStop.A pierde el foco antes de crear B.
Repasar: S14.4.
Volver atrás
B está encima de A, que quedó detenida. El usuario pulsa Atrás. ¿Qué callbacks recibe A?
-
onCreate→onStart→onResume.La instancia de A sigue viva: no se crea de nuevo.
- Solo
onResume.A estaba detenida, no solo pausada.
-
onRestart→onStart→onResume.Correcta; B recibe después
onStopyonDestroy(S14.4). -
onRestoreInstanceState→onResume.No hay que restaurar: la instancia está intacta.
Repasar: S14.3, S14.4.
Actividad translúcida
Sobre A, reanudada, se abre una actividad translúcida que no cubre toda la pantalla. ¿Qué recibe A?
- Solo
onPause, porque sigue visible.Correcta (S14.4).
-
onPauseyonStop.onStopexige dejar de ser visible. -
onPause,onStopyonDestroy.No se destruye.
- Ningún callback.
Pierde el foco, así que se pausa.
Repasar: S14.4.
onDestroy no garantizado
La actividad está detenida y el sistema elimina su proceso por falta de memoria. ¿Qué afirmación es correcta?
- Siempre se llama a
onDestroy()antes de eliminar el proceso.No está garantizado.
- El sistema llama a
onRestart()para avisarla.No.
- La app pasa a la fase de borrado.
Sigue instalada.
-
onDestroy()puede no llamarse; por eso no es un lugar fiable para guardar datos críticos.Correcta (S14.4).
Repasar: S14.4.
Llamada a la superclase
¿Qué regla da el temario sobre las implementaciones de los métodos del ciclo de vida?
- Nunca deben llamar a la superclase.
Al contrario.
- Deben llamar siempre a la implementación de la superclase antes de cualquier otra tarea.
Correcta (S14.1).
- Solo
onCreatellama a la superclase.Todos los del esqueleto lo hacen.
- Deben llamar a la superclase al final del método.
El temario dice «antes de realizar cualquier otra tarea».
Repasar: S14.1.
Girar la pantalla
Con el comportamiento por defecto, el usuario gira el móvil con una actividad en primer plano. ¿Qué ocurre?
- Solo se llaman
onPause()yonResume().Ignora la recreación.
- Se llama a
onRestart()y no se crea ninguna instancia nueva.Eso es volver a una actividad detenida intacta.
- La actividad se destruye y se crea una nueva instancia; el estado guardado llega en el
Bundle.Correcta (S14.4, S15.2).
- La app pasa a la fase de actualización.
Confunde con el ciclo de vida de la app instalada.
Repasar: S15.2, S15.3.
Guardar el estado
¿Qué método se usa para guardar el estado temporal de la interfaz antes de que el sistema pueda destruir la actividad?
-
onRestoreInstanceState(Bundle).Ese recupera el estado.
-
onRestart().Se llama al volver de detenida.
-
finish().Cierra la actividad.
-
onSaveInstanceState(Bundle).Correcta (S15.1).
Repasar: S15.1.
Restaurar el estado
Tras recrear la actividad, ¿dónde puede recuperarse el estado guardado?
- En
onCreate(Bundle), comprobando que no seanull, o enonRestoreInstanceState(Bundle), que se llama después deonStart().Correcta (S15.1, S15.3).
- Solo en
onDestroy().No es el lugar de recuperación.
- En
onRestoreInstanceState(Bundle), que se llama antes deonCreate().Se llama después de
onStart(). - En
onPause().No recibe el
Bundle.
Repasar: S15.1, S15.3.
Instancia intacta
En la figura de guardar y restaurar el estado, la actividad dejó de ser visible pero su instancia sigue intacta. Al volver el usuario, ¿qué ruta sigue?
-
onCreate()uonRestoreInstanceState()para restaurar el estado.Esa es la ruta tras matar el proceso.
-
onRestart()y vuelta a ejecución, sin necesidad de restaurar el estado.Correcta (S15.1).
-
onSaveInstanceState()otra vez.No.
-
onDestroy()y luegoonCreate().La instancia no se ha destruido.
Repasar: S15.1.
Cuándo no se guarda
¿En qué caso no se llama a onSaveInstanceState?
- Al girar la pantalla.
Ahí sí se llama, para recrear la actividad.
- Al pulsar Inicio con la actividad en primer plano.
Ahí sí se llama: el sistema podría eliminarla después.
- Cuando el sistema detiene la actividad porque otra la cubre.
Ahí sí se llama.
- Cuando el usuario cierra la actividad a propósito con Atrás o se llama a
finish().Correcta: no habrá nada que restaurar (S15.3).
Repasar: S15.3.
Progreso del cuestionario
0 / 0 preguntas respondidas (0%)
0 correctas
¡Cuestionario completado!
0%
0 / 0 correctas
Tiempo: