Navegando por Android: ¿Cómo volver a la pantalla anterior?

Me gustaría saber cómo volver a la pantalla anterior en Android. No solo volver. Por lo general, toco el botón "Atrás" en el teléfono inteligente, pero a menudo simplemente existe o me lleva de regreso a casa cuando debería haberme llevado a la pantalla anterior.

Respuestas (2)

Esto es algo así como una simplificación excesiva, pero la respuesta simple es: no se puede.

¿Qué hace que esto sea una simplificación excesiva? Bueno, es porque depende de cómo se implemente una aplicación determinada. Las aplicaciones de Android se basan en el concepto de una 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 inicia una nueva actividad, se coloca en una "pila de actividades" de todo el sistema en la parte superior de la pila (para cualquier persona que no esté familiarizada, consulte Pila (estructura de datos) ). Cuando se presiona el botón Atrás, la actividad actual (en la parte superior de la pila) finaliza y se elimina de la pila, lo que hace que la anterior (debajo de ella en la pila) pase al primer plano. Este comportamiento emergente/traer a primer plano continúa mientras presionas el botón Atrás hasta que aterrizas en INICIO, que es el comienzo de la pila. A partir de aquí, no se puede "retroceder" más.

Ahora, ¿cómo se aplica esto a las aplicaciones? En muchas aplicaciones, una Actividad representa una pantalla individual . Cuando 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 usan este diseño, devolver el golpe, de hecho, lo llevará a la pantalla anterior. La razón debería ser bastante evidente: la pantalla que está viendo actualmente está en la parte superior de la pila, la pantalla anterior se encuentra debajo (ya que son actividades en sí mismas). Por lo tanto, al devolver el golpe se elimina la pantalla actual de la pila, se finaliza y luego se carga la anterior.

Sin embargo, este no es un modelo obligatorio . Puede tener una Actividad que contenga múltiples diseños y pantallas. Hemos usado esto en mi oficina para, por ejemplo, crear una especie de asistente de configuración. La idea es que devolver el golpe simplemente debe salir del asistente, y hay botones "Atrás" y "Siguiente" en la pantalla para facilitar la navegación. Por lo tanto, incluso si está en la tercera pantalla del asistente, no ha creado ninguna actividad adicional, por lo que al presionar el botón Atrás (botón duro) saldrá de la "Actividad del asistente" y regresará a la "Actividad del menú".

Además, el comportamiento del botón Atrás puede ser anulado por una aplicación de su elección. Simplemente llama a un método llamado onBackPressed(), que realiza el comportamiento predeterminado de retroceder en la pila de actividades. Sin embargo, si hay una implementación anulada de onBackPressed()en la actividad actual, se ejecutará en su lugar.

Para resumir: la idea de que el botón Atrás vuelve a la "pantalla" anterior no está garantizada en absoluto. El botón de retroceso duro solo se ocupa de las actividades , que a menudo son "pantallas" para el usuario, pero no lo son necesariamente y de ninguna manera están obligadas a serlo. No existe el concepto de "retroceder una pantalla " a menos que la aplicación que esté utilizando lo indique, pero aún no se garantiza que el botón Atrás en sí proporcione esa funcionalidad.

Otras lecturas:

Si una aplicación no lo lleva a la pantalla anterior cuando presiona Atrás, no hay nada que usted o Android puedan hacer al respecto. Puede pedirle al desarrollador de la aplicación que la implemente, pero eso es todo.