Android: muestre la última actividad vista cuando presione (Botón de inicio-> Aplicación de aplicaciones)

StackOverflow https://stackoverflow.com/questions/6364418

Pregunta

Vine a hacer la pregunta eterna, que hasta ahora no he encontrado una solución, busqué en Internet el mismo problema pero encontré una solución final a este problema.

Cuando tengo 2 actividades abiertas y aprieto el 'botón de inicio' y luego presiono el atajo para mi aplicación, me muestra nuevamente la primera actividad (la actividad del lanzador) y luego para volver a la actividad que se muestra, tengo que presiona el botón de atrás.

¿Cuál es la solución a este problema?

Quiero presionar el atajo de mi aplicación (después de haber dejado mi aplicación presionando el botón de inicio) Mostrarme que se muestra la última actividad, en su lugar, me muestra la primera actividad (lanzador de actividades).

Gracias por adelantado.

¿Fue útil?

Solución

Ese es el comportamiento esperado. El lanzador lanzará la actividad con el filtro android.intent.action.MAIN.

Sin embargo, hay formas de solucionarlo. Una muy simple es tener una bandera booleana mRunning que te pondrás true tras el lanzamiento. Si true, luego en el onStart() Método que comienza una intención de iniciar su segundo Activity; Si es falso, entonces continúa con setContentView().

Si tiene varias actividades a las que volver, entonces un enfoque factible es guardar la actividad actual en SharedPreferences y lanzarlo de la misma manera.

Alternativamente, su actividad principal puede ser solo una actividad de entrada cuyo único trabajo es comenzar la última actividad utilizada.

EDITAR: Encontré esta pregunta duplicada: ¿Cómo hacer que una aplicación de Android vuelva a la última actividad abierta cuando se vuelve a relanzar? Eso tiene un Ansewr mucho mejor que el mío.

Otros consejos

Su aplicación todavía se está ejecutando en segundo plano cuando presiona el botón de inicio. finish() La actividad cuando presiona el botón de inicio si desea regresar.

Dependiendo de si su actividad principal es lanzada o no por otra actividad, o solo el icono de la aplicación, puede usar una solución mucho más simple. Si su actividad principal solo es lanzada por el ícono de la aplicación, puede usar istaskroot () Para verificar si su actividad principal se está lanzando como un nuevo comienzo para la aplicación, o si el usuario regresa y la actividad principal se está colocando además de otras actividades que desea mostrar.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}

Puede usar StartActivityForResult Reemplazar para StartActivity cuando desea abrir otra actividad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top