Nach dem Navigation A-> B Sie haben zwei Aufgaben: Die erste enthält A, die zweite enthält B . B ist oben und A ist darunter.
Wenn nun von B- Navigation> C Android startet Aktivität C in die Aufgabe enthält, A (es nicht in die Aufgabe enthält, B starten kann, weil B als „SingleInstance“ definiert ist, so leitet sie diese in eine Aufgabe, die hat die gleiche "TaskAffinity", in diesem Fall die Aufgabe, die A enthält). Um dies zu erreichen, bringt Android die Aufgabe mit A nach vorne. Jetzt haben Sie 2 Aufgaben: Die Aufgabe mit A und C vorne und die zweite mit B darunter.
Jetzt drücken Sie die BACK-Taste, die die Aktivität C beendet und zu der Aktivität unterhalb der Task C zurückkehrt. Sie haben noch 2 Aufgaben: Die eine enthält C vorne und die andere B darunter .
Jetzt drücken Sie erneut die BACK-Taste. Dies beendet die Aktivität A (und beendet damit die Aufgabe, die A enthielt) und bringt die vorherige Aufgabe im Aufgabenstapel an die Front, nämlich die Aufgabe, die B enthält.Sie haben nun 1 Aufgabe: die Aufgabe, B. enthält
In Ihrem anderen Szenario, nachdem sie von A-> B-> C Navigation, beginnen Sie mit zwei Aufgaben: Die Aufgabe enthält, A und C in der Front und die zweite enthält B darunter.
Jetzt drücken Sie die HOME-Taste. Sie sagen jetzt, dass Sie "durch langen Druck auf die App zurückkommen". Das ist nicht genau richtig. Sie können nicht "zurück zur App". Sie können nur zu einer Aufgabe zurückkehren. Aber du hast 2 verschiedene Aufgaben: Wenn du lange drückst, solltest du die 2 Aufgaben sehen. Sie haben wahrscheinlich das gleiche Symbol (es sei denn, Sie haben ein anderes Symbol für Aktivität B angegeben), so dass Sie sie möglicherweise nicht unterscheiden können. Wenn Sie die Aufgabe auswählen, die A und C enthält, wird diese Aufgabe an die Front mit der Aktivität C oben gebracht. Wenn Sie jetzt die Taste ZURÜCK drücken, wird die Aktivität C beendet und die Aktivität darunter, Aktivität A, wird angezeigt. Wenn Sie nun erneut die BACK-Taste drücken, wird die Aktivität A beendet und Sie kehren zum HOME-Bildschirm zurück. Die Aufgabe, die B enthält, befindet sich immer noch in der Liste der letzten Aufgaben, aber sie befindet sich nicht mehr im Aufgabenstapel unter Ihrer anderen Aufgabe, denn wenn Sie die HOME-Taste drücken, ist es wie bei Null. Du fängst wieder von vorne an. Sie haben keine aktiven Aufgaben, also sind alle Aufgaben in einer Reihe, sie sind nicht in einem Stapel und es gibt keine Hierarchie.
Auch in Ihrer Frage verwenden Sie den Ausdruck "beendet die App". Das ist auch nicht ganz korrekt. Das Drücken der BACK-Taste bewirkt lediglich, dass die aktuelle Aktivität beendet wird. Wenn die aktuelle Aktivität die einzige Aktivität in einer Aufgabe ist, wird diese Aufgabe ebenfalls beendet. Es "beendet" die App jedoch nicht. Besonders in Ihrem Fall, da Ihre "App" tatsächlich in 2 separaten Aufgaben existiert.
Hoffentlich ist dies klar.
Vielen Dank David..Ihre Antwort erklärt das Konzept sehr deutlich, sehr hilfreich :) Nur um weitere Details hinzuzufügen, hatte ich alle diese drei Aktivitäten A, B und C innerhalb derselben Anwendung. Auf lange Heimarbeit konnte ich zwei getrennte Aufgaben nicht sehen, aber nur eine. Auch in Bezug auf das ANDERE SZENARIO, "Wenn Sie jetzt erneut die BACK-Taste drücken, wird die Aktivität A beendet und Sie kehren zum HOME-Bildschirm zurück." ** F: ** Warum braucht es uns nicht? Aufgabe, die B enthält, weil die Aufgabe, die B enthält, unterhalb der Aufgabe sein sollte, die A und C enthält, richtig? Bitte korrigieren Sie mich, wenn ich falsch liege. – Pravy
Bitte poste dein Manifest, dann kann ich dir weiterhelfen. Füge es einfach zu deiner Frage als Bearbeitung hinzu. –
Hey Pravy, hat deine Verwirrung endlich gelöst? Warum braucht es keine Aufgabe mit B? Ich habe die gleiche Verwirrung. Wenn du es weißt, bitte sag es mir. Vielen Dank. – CodeAlien