VISITAS:

jueves, 28 de agosto de 2014

Estados de una Activity en Android

ESTADOS

Los estados en los que puede estar una Activity en Android son:

  • NON-EXIST
  • STOPPED: no visible
  • PAUSED: visible
  • RUNNING: visible y en foreground
Las transiciones entre estados y las funciones de la Activity invocadas son las siguientes:

  • NON-EXIST --> STOPPED: onCreate()
  • STOPPED --> PAUSED: onStart()
  • PAUSED --> RUNNING: onResume()
  • RUNNING --> PAUSED: onPause() y onSaveInstanceState()
  • PAUSED --> STOPPED: onStop()
  • STOPPED --> NON-EXIST: onDestroy()


EVENTOS QUE CAUSAN CAMBIOS DE ESTADO

Lanzar la Activity

Pasa de estado NON-EXIST a estado RUNNIG, invocándose las siguientes funciones:
  • onCreate()
  • onStart()
  • onResume()

Pulsar Back

Pasa de estado RUNNIG a estado NON-EXIST, invocándose las siguientes funciones:
    • onPause()
    • onSaveInstanceState()
    • onStop()
    • onDestroy()

    Pulsar Home

    Pasa de estado RUNNIG a estado STOP, invocándose las siguientes funciones:
        • onPause()
        • onSaveInstanceState()
        • onStop()

        Abrir la aplicación en recientes después de Home

        Pasa de estado STOP a estado RUNNING, invocándose las siguientes funciones:
            • onStart()
            • onResume()

            Abrir la aplicación en recientes después de Back

            Pasa de estado NON-EXIST a estado RUNNING, invocándose las siguientes funciones:
                • onCreate()
                • onStart()
                • onResume()

                Rotar dispositivo

                Pasa de estado RUNNIG a estado RUNNING, invocándose las siguientes funciones:
                    • onPause()
                    • onSaveInstanceState()
                    • onStop()
                    • onDestroy()
                    • onCreate()
                    • onStart()
                    • onResume()

                    Lanzar otra Activity desde la Activity

                    Pasa de estado RUNNIG a estado STOP, invocándose las siguientes funciones:
                        • onPause()
                        • onSaveInstanceState()
                        • onStop()

                        Pulsar Back en la otra Activity

                        Pasa de estado STOP a estado RUNNING, invocándose las siguientes funciones:
                            • onStart()
                            • onResume()


                            CÓMO VE EL S.O. ANDROID LAS ACTIVITIES

                            Cuando el usuario pulsa sobre una aplicación en su móvil o tablet Android, el sistema operativo no arranca la aplicación, sino que arranca una Activity y la pone en estado RUNNING.
                            Normalmente, las aplicaciones contienen múltiples activities, ¿cuál de ellas se arranca? Esto viene definido en el fichero AndroidManifest.xml. Una activity tendrá definido:

                               

                            dentro de

                            Si desde la Activity inicial se arranca otra Activity, el sistema arrancará la nueva Activity y la pondrá en estado RUNNING (encima de la anterior). Estas dos actividades están en el stack de actividades de Android.
                            Si se pulsa Back, la actividad actual se destruye y vuelve la actividad inicial a estado RUNNING (el mismo efecto se consigue invocando el método finish() ).

                            Si se pulsa Back en la actividad inicial, se destruye la Activity inicial y volveremos donde estábamos antes de arrancar la aplicación.

                            El responsable de realizar todas estas tareas es el ActivityManager de Android, el cual mantiene un stack de actividades compartido entre todas las aplicaciones.