Ich habe Android gelernt und bin auf ein Problem mit launchMode = "singleTask" gestoßen. In der Dokumentation wird angegeben, dass die Aktivität bei Verwendung dieses Attributs immer in einer neuen Aufgabe als Stammaktivität gestartet wird. Zweitens heißt es in der Dokumentation, dass, wenn eine Absicht auf eine solche Aktivität abzielt, wenn darüber Aktivitäten in ihrem Aufgabenstapel liegen, solche Intents verworfen werden (obwohl die Aufgabe immer noch in den Vordergrund gebracht wird).Android: Verhalten von launchMode = "singleTask" nicht wie beschrieben?
Ich habe damit herum gespielt, und das Verhalten, das ich beobachte, ist völlig anders. Insbesondere: - Aktivitäten mit launchMode = "singleTask" sind nicht immer die Stammaktivität in einem Aufgabenstapel. Sie werden einfach mit der gleichen Affinität auf den vorhandenen Stapel gelegt. - Wenn eine Absicht auf eine solche Aktivität abzielt und sich darüber im Stapel weitere Aktivitäten befinden, wird die Absicht nicht verworfen. Stattdessen werden die darüber liegenden Aktivitäten im Stapel verworfen. Der Intent wird dann wie gewohnt über onNewIntent an die Aktivität übergeben.
Kann jemand bestätigen, dass dies das tatsächliche Verhalten ist? Wenn ja, warum sind die Dokumente falsch? Wenn nicht, was habe ich falsch gemacht? . .
EDIT:
Ein Beispiel dieses Verhalten zeigt, ist hier zu finden: http://groups.google.co.uk/group/android-developers/browse_thread/thread/fd8f249803b4688a# Sorry für die Cross-Post, aber ich war nicht in der Lage das Beispiel in einem anständigen Format zu bekommen, hier zu posten ...
Ich kann dieses Verhalten bestätigen, aber ich verstehe es auch nicht. Die Kinderaktivitäten werden zerstört. –