Supongamos que tenemos dos actividades.
A - actividad principal, que es "inicio en casa habilitado" (filtros de intención adecuados, etc.)
B - tarea de actividad raíz con especificación singleTask (solo puede haber una instancia de esta actividad) y con taskAffinity personalizado (para diferenciar si de la raíz principal de la tarea).¿Cómo eliminar la actividad de singleTask con taskAffinity de tareas recientes cuando termina?
Supongamos que B representa una tarea, que solo es válida cuando no está terminada; volver a ella o volver a empezar desde tareas recientes después de finalizarla no es una opción.
En algún punto del tiempo - A inicia B para comenzar una nueva tarea. El objetivo es eliminar B de la lista de tareas recientes cuando el usuario finaliza B. El usuario puede navegar de B a otras tareas (usando la tecla de inicio prolongado) y luego navegar de nuevo hasta B siempre que no haya terminado. Lanzar A desde el iniciador no pondrá a B en primer plano ya que tienen afinidades de tareas diferentes.
Android reconoce B como raíz de una tarea, por lo que B es visible en la lista de tareas recientes, incluso si está terminada, y el usuario siempre puede volver a ella. No es una solución mover B a la única tarea con A, porque en el momento en que B se está ejecutando, el usuario debería poder cambiar entre las tareas A y B. Agregar excludeFromRecents al manifiesto de B lo elimina completamente de la lista de tareas recientes, y también es una mala solución.
¿Cómo conseguirlo? (Lo siento por mi mala Inglés)
Finalización de llamada() en onResume() cuando la tarea finaliza no es correcta? – pawelzieba
Pero aún permanece en la lista de tareas recientes –
@MichaelP ¿Desea que nunca aparezca en tareas recientes? ¿O simplemente desaparecer cuando haya terminado? –