2016-09-13 4 views
0

Vielleicht kann der Titel verwirrend sein, aber ich kann keinen besseren Weg finden, mein Problem zu benennen.
Ich habe 3 Aktivitäten, definiert mit separaten taskAffinity in Manifest-Datei (zum Beispiel A, B, C). Zuerst starte ich die Aktivität A, welche Aufgabe A startet. Dann drücke ich die Home-Taste und der Startbildschirm wird angezeigt. Als nächstes beginne ich die Aktivität B, die Aufgabe B startet. Auf dem Bildschirm der Aktivität B gibt es eine Schaltfläche, die beim Anklicken die Aktivität C startet. In diesem Moment ist der Stapel wie folgt (mit dem Befehl dumpsys). my.package.Home ist meine selbstdefinierte Home-Anwendung.Seltsames Verhalten beim rekursiven Start der Aufgabe

Neue Aufgaben:
* Aktuelle # 0: TaskRecord {421c0998 # 111 A = my.package.CU = 0 sz = 2}
* Aktuelle # 1: TaskRecord {42133508 # 110 A = meine. package.BU = 0 sz = 2}
* Aktuelle # 2: TaskRecord {41cf77c0 # 1 A = my.package.Home U = 0 sz = 4}
* Aktuelle # 3: TaskRecord {428124d8 # 103 A = meine 2 .package.AU = 0 sz =}

auf Aktivität C auch gibt es einen Knopf Aktivität B zu starten, und nach dem B von C gestartet wird, wird der Task-Stack neu geordnet, te lling von unten dumpsys Ausgabe.

Neue Aufgaben:
* Aktuelle # 0: TaskRecord {42133508 # 110 A = my.package.BU = 0 sz = 2}
* Aktuelle # 1: TaskRecord {421c0998 # 111 A = meine. package.CU = 0 sz = 2}
* Letzte # 2: TaskRecord {41cf77c0 # 1 A = mein.package.Home U = 0 sz = 4}
* Aktuelle # 3: TaskRecord {428124d8 # 103 A = meine .package.AU = 0 sz = 2}

Dann ist das Problem, von oben Status, wenn ich zweimal Zurück-Taste drücken, anstatt der Startbildschirm wie erwartet angezeigt wird, akti vity A wird angezeigt.
Ich habe eine anständige Erfahrung in Android, aber habe keine Ahnung, was der Hintergrund dieses seltsame Verhalten ist. Jeder kann mir helfen, herauszufinden, ob dies ein Design-Verhalten oder Android-Fehler ist. Und wie kann ich mein erwartetes Verhalten beherrschen?

Aktualisiert: Dies scheint ein Android 4.x spezifisches Problem zu sein. Auf einem 6.0 Gerät kein seltsames Verhalten mit der gleichen App.

Antwort

0

Versuchen Sie benutzerdefinierte Flags Aktivitäten auf Manifest-Datei zu setzen, dieses Problem zu vermeiden

android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance"]

Sie können hier überprüfen, was jeder von ihnen

https://developer.android.com/guide/topics/manifest/activity-element.html

+0

Eigentlich bedeutet, dass ich versucht, viele Lösungen, einschließlich Ihres Vorschlags, aber kein Glück. Es scheint, dass das ein Fehler von Android 4.x ist. Ich habe die gleiche App auf Android 6.0 versucht und kein Problem. –