Tengo una actividad que se puede iniciar desde varias otras actividades, junto con los intentos de filtro de URL.Iniciar la actividad principal si la pila de actividades está vacía
En esta actividad utilizo el ícono de inicio en la barra de acciones como un botón de retroceso, devolviendo al usuario a la actividad anterior (y no como una acción de "inicio"). Por ahora hago esto llamando a la función finish(). Esto funciona bien cuando se trabaja desde dentro de la aplicación.
Sin embargo, si lanzo la actividad por un intento de filtro de URL, quiero que el icono de inicio lleve al usuario a la actividad principal. Obviamente, llamar a finish() simplemente cerrará la actividad.
Así que mi pregunta es, ¿hay alguna manera de comprobar si mi pila de aplicaciones está vacía y luego iniciar la actividad principal si es verdadera? ¿O estoy atacando esto de la manera incorrecta?
Parecía una buena solución, pero lamentablemente no funciona. isTaskRoot() devuelve falso en ambas situaciones. Supongo que necesito que funcione cuando no está lanzando una nueva tarea también (es decir, ¿la aplicación ya se está ejecutando en segundo plano?). No puedo entender el manejo de la actividad/tareas. – SveinT
Edité mi respuesta para agregar otro método que pueda usar ya que su actividad obviamente se inició en una tarea existente. –
Eso debería funcionar, por supuesto, pero supongo que existe una solución más limpia. La aplicación Gmail y otros implementan un comportamiento similar. De cualquier manera, tendrá que hacer. ¡Gracias! – SveinT