Meine Anwendung hat drei Aktivitäten sagen A -> B-> C
.
Aktivität A wird von einer anderen Aktivität über startActivityForResult()
aufgerufen. Aktivität B und C werden auch ähnlich genannt. Ich muss auch Aktivität A von der Benachrichtigungsleiste aus aufrufen (wenn es eine bestimmte Benachrichtigung gibt).
Wenn ich mich jetzt in Aktivität B oder C befinde und auf die Benachrichtigungsleiste klicke und die Aktivität A anrufe, geht die App nur zu Aktivität A und die über die Aktivitäten B oder C eingegebenen Daten bleiben nicht bestehen.
Ich will kein solches Verhalten. Ich möchte, dass wenn ich auf Benachrichtigung klicke, es nur zum aktuellen Bildschirm umleiten sollte. Kann jemand helfen? (Ich erwähnte activity:launchMode
als SingleTask
).
Sie können möglicherweise eine statische Variable verwenden, um andere Daten zu bestimmen. Ich bin mir jedoch nicht sicher, wie viel oder welche Art von Daten Sie von den anderen Aktivitäten aus abrufen möchten.
Auch das Schreiben in den permanenten Speicher funktioniert möglicherweise, aber auch hier ist die Ungenauigkeit der Daten, die Sie speichern und wie schwierig es ist, sie zu beantworten. Schreiben / lesen Sie den persistenten Speicher in den onResume
und onSuspend
methdod jeder Aktivität (oder erstellen Sie eine Super-Aktivitätsklasse und erweitern Sie diese für A, B und C).
Die Verwendung von android:launchMode="singleTask"
ist wahrscheinlich der beste Ansatz, da die Aktivität nicht erneut erstellt wird, wenn sie bereits ausgeführt wird. Fügen Sie es einfach der Aktivität in Ihrer AndroidManifest.xml hinzu, und Sie sollten alles einstellen.
Hier ist eine weitere Frage, die nützlich sein könnte: Android singleTask oder singleInstance launch mode?
Tags und Links java android android-activity notifications