Einzelne Instanz der Aktivität

7

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 ).

    
Sachchidanand 15.07.2011, 11:58
quelle

2 Antworten

0

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).

    
CrackerJack9 30.07.2011, 17:34
quelle
19

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.

%Vor%

Hier ist eine weitere Frage, die nützlich sein könnte: Android singleTask oder singleInstance launch mode?

    
derekerdmann 15.07.2011 12:16
quelle