Nehmen wir an, wir haben zwei Aktivitäten.
A - Haupttätigkeit, das heißt „Home Launcher aktiviert“ (richtiger Absicht Filter etc.)
B - Task Wurzelaktivität mit singleTask Spezifikation und mit benutzerdefinierten taskAffinity (es kann nur eine Instanz dieser Aktivität sein) (zu Unterscheiden Sie, ob von der Hauptaufgabe root).Wie kann die Task "SingleTask" mit taskAffinity aus den letzten Aufgaben entfernt werden, wenn sie fertig ist?
Nehmen wir an, dass B eine Aufgabe darstellt, die nur dann gültig ist, wenn sie nicht beendet ist. Wenn Sie sie nach der Beendigung nicht erneut ausführen oder neu starten, ist dies keine Option.
Zu einem bestimmten Zeitpunkt - A startet B, um eine neue Aufgabe zu beginnen. Das Ziel besteht darin, B aus der Liste der letzten Aufgaben zu entfernen, wenn der Benutzer B beendet hat. Der Benutzer kann von B zu anderen Aufgaben navigieren (mit Home Long Press) und dann zurück zu B navigieren, solange er nicht beendet ist. Das Starten von A aus dem Launcher bringt B nicht in den Vordergrund, da sie unterschiedliche Aufgabenaffinitäten haben.
Android erkennt B als Wurzel einer Aufgabe, daher ist B in der Liste der zuletzt verwendeten Aufgaben sichtbar, auch wenn es fertig ist, und der Benutzer kann immer wieder darauf zurückgreifen. Es ist keine Lösung, B zu der einen Aufgabe mit A zu bewegen, weil in der Zeit, in der B läuft, der Benutzer in der Lage sein sollte, zwischen den Aufgaben A und B zu wechseln. Das Hinzufügen von excludeFromRecents zum Manifest von B entfernt es vollständig aus der Liste der letzten Aufgaben, und es ist auch eine schlechte Lösung.
Wie erreichen? (Sorry für mein schlechtes Englisch)
Berufung finish() in onResume(), wenn Aufgabe beendet ist, nicht wahr? – pawelzieba
Aber es bleibt noch in der letzten Aufgabenliste –
@MichaelP Haben Sie es nie in den letzten Aufgaben angezeigt werden soll? Oder einfach verschwinden, wenn Sie fertig sind? –