Supponiamo di avere due attività.
A - attività principale, ovvero "home launcher abilitato" (filtri intenzionali, ecc.)
B - attività radice attività con specifica singleTask (può esserci solo un'istanza di questa attività) e con taskAffinità personalizzata (a differenziare se dalla radice dell'attività principale).Come rimuovere l'attività singleTask con taskAffinity dalle attività recenti al termine?
Supponiamo che B rappresenti un'attività, che è valida solo quando non è terminata: ritornare ad essa o ricominciare da attività recenti dopo averla terminata non è un'opzione.
In un certo punto del tempo - A avvia B per iniziare una nuova attività. L'obiettivo è rimuovere B dall'elenco delle attività recenti quando l'utente termina B. L'utente può spostarsi da B ad altre attività (usando home press lunga) e quindi tornare a B finché non è terminato. Avviare A dal programma di avvio non porterà B in primo piano poiché hanno affinità diverse.
Android riconosce B come una radice di un'attività, quindi B è visibile nell'elenco delle attività recenti anche se è terminato e l'utente può sempre tornare ad esso. Non è una soluzione per spostare B sull'unica attività con A, perché nel tempo B è in esecuzione - l'utente dovrebbe essere in grado di passare tra le attività A e B. L'aggiunta di excludeFromRecents al manifest di B la rimuove completamente dall'elenco delle attività recenti, ed è anche una soluzione cattiva.
Come raggiungerlo? (Dispiace per il mio cattivo inglese)
La chiamata alla fine() in onResume() quando l'attività è terminata non è corretta? – pawelzieba
Ma rimane ancora nell'elenco delle attività recenti –
@MichaelP Vuoi che non compaia mai nelle attività recenti? O semplicemente sparisci quando hai finito? –