Meine App besteht aus einem Dienst (der eine Statusmaschine implementiert und auf UI- und Netzwerkereignisse reagiert) und mehreren Statusaktivitäten, die den Status der Statusmaschine entsprechen.Verwenden von startActivityForResult aus der Aktivität, die mit FLAG_ACTIVITY_NO_HISTORY gestartet wurde
Die Statusänderung verwendet FLAG_ACTIVITY_NO_HISTORY
, um Statusaktivitäten zu starten, sodass der Benutzer die Statusmaschine nicht umgehen und "zurück" zur "falschen" Aktivität gelangen kann. Dies macht den "Zurück" -Button zum Beenden der App. (Der Status bleibt bestehen, wenn die App neu gestartet wird.)
Ich möchte startActivityForResult
verwenden, um eine nicht-staatliche Aktivität zu starten.
Wenn die nicht-staatliche Aktivität gestartet wird, wird die Aktivität des übergeordneten Status wie erwartet gestoppt.
Wenn die nicht-staatliche Aktivität finish()
aufruft, wird die Aktivität des übergeordneten Status zerstört und nicht (erneut) gestartet, noch bevor die übergeordnete Instanz aufgerufen wird.
Liegt das daran, dass die übergeordnete Aktivität mit FLAG_ACTIVITY_NO_HISTORY gestartet wurde?
können Sie auf zurück gedrückt Funktion verwenden, um Benutzer zu beschränken, die Zustandsmaschine nicht zu umgehen und "zurück" zu der "falschen" Aktivität zu erhalten –