Me gustaría saber cómo volver a la pantalla anterior en Android. No sólo volver. Suelo tocar el botón "Atrás" en el teléfono inteligente, pero a menudo sólo existe o me lleva de vuelta a casa cuando debería haberme llevado a la pantalla anterior.
Respuestas
¿Demasiados anuncios?Esto es una especie de simplificación, pero la respuesta sencilla es: no se puede.
¿Por qué es una simplificación excesiva? Pues porque depende de cómo se implemente una determinada aplicación. Las aplicaciones de Android se basan en el concepto de un Actividad que se describe en la documentación de desarrollo como:
Una actividad es una cosa única y enfocada que el usuario puede hacer.
Cuando se lanza una nueva actividad, se coloca en una "pila de actividades" de todo el sistema en la parte superior de la pila (para quien no esté familiarizado, véase Pila (estructura de datos) ). Cuando se pulsa el botón de retroceso, la actividad actual (en la parte superior de la pila) se termina y eliminado de la pila, haciendo que la anterior (debajo de ella en la pila) pase a primer plano. Este comportamiento de saltar/traer al primer plano continúa a medida que sigues pulsando el botón de retroceso hasta que llegas a HOME, que es el inicio de la pila. A partir de aquí, no se puede retroceder más.
Ahora bien, ¿cómo se aplica esto a las aplicaciones? En muchas aplicaciones, una Actividad representa una, individual pantalla. Cuando se avanza a una nueva pantalla, se crea una nueva Actividad para la pantalla y se coloca en la pila encima de la que la creó. En las aplicaciones que utilizan este diseño, si se pulsa "atrás" se vuelve a la pantalla anterior. La razón debería ser bastante evidente: la pantalla que estás viendo en ese momento está en la parte superior de la pila, la pantalla anterior se encuentra por debajo de ella (ya que cada una es una Actividad). Por lo tanto, al pulsar atrás se elimina la pantalla actual de la pila, se termina y se carga la anterior.
No es un modelo obligatorio Sin embargo. Puede tener una Actividad que contenga múltiples diseños y pantallas. Hemos utilizado esto en mi oficina para, por ejemplo, crear una especie de asistente de configuración. La idea es que al pulsar "atrás" simplemente se sale del asistente, y hay botones "Atrás" y "Siguiente" en la propia pantalla para facilitar la navegación. Así, aunque estés en la tercera pantalla del asistente, no has creado ninguna Actividad adicional, por lo que pulsar el botón de retroceso (botón duro) te sacará de la "Actividad del Asistente" y te devolverá a la "Actividad del Menú".
Además, el comportamiento del botón de retroceso puede ser anulado por medio de una aplicación si así lo deciden. Simplemente llama a un método llamado onBackPressed()
que realiza el comportamiento por defecto de ir hacia atrás en la pila de actividades. Sin embargo, si hay una implementación anulada de onBackPressed()
en la Actividad actual, que se ejecutará en su lugar.
Así que para resumir: la idea de que el botón de retroceso vuelve a la "pantalla" anterior no está garantizada en absoluto. El botón de retroceso duro se ocupa de Actividades sólo que a menudo son "pantallas" para el usuario, pero que no lo son necesariamente, ni están obligados a serlo. No existe el concepto de "volver una pantalla ", a no ser que la aplicación que utilices diga que lo hay, pero esa funcionalidad aún no está garantizada que la proporcione el propio botón de retroceso.
Más información: