2016-12-27 5 views
0

Ich bin neu bei Android so weiß nicht, was die Lösung für dieses Problem sein kann.Wechsel zwischen Aktivitäten ohne die Aktivität zu zerstören

Ich habe eine App mit zwei Aktivitäten erstellt, die diese als erste und zweite Aktivität bezeichnet. Der erste Aktivitätsstartmodus ist SingleTask und der zweite Aktivitätsstartmodus ist Standard. Wenn ich jetzt von der zweiten Aktivität zur ersten aktiviere, möchte ich die zweite Aktivität nicht zerstören. Aber in diesem Fall wird es zerstört. So kann mir jemand helfen vorschlagen, wie kann ich dieses Szenario des Wechsels von der zweiten Aktivität zu ersten ohne Zerstörung der zweiten Aktivität erreichen.

+1

Haben Sie finish() hinzugefügt, während Sie von einer Aktivität zur anderen wechseln? Wenn ja, entfernen Sie diese Zeile. –

+0

@SnehaSarkar: Nein, ich benutze nicht fertig() beim Anrufen. So rufe ich an. Intent intent = neue Absicht (Second.this, First.class); startActivity (Absicht); –

+0

Ihre Aktivitäten sind in einem Stapel. Wenn Sie die App starten, enthält der Stapel "FirstActivity". Wenn 'FirstActivity'' SecondActivity' startet, wird die Instanz von 'SecondActivity' dem Stack hinzugefügt. Wenn Sie nun von "SecondActivity" zu "FirstActivity" wechseln möchten, was sollte dann mit "SecondActivity" geschehen? Wohin soll es gehen? –

Antwort

1

Keine Notwendigkeit, dafür irgendwelche Aktivitäten zu zerstören, denke ich. Genau dies umzusetzen:

Intent intent=new Intent(ActivityOne.this,ActivityTwo.class); 
startActvity(intent); 

in Ihrem oncreate() Methode von actvity

1

Dies liegt daran, Aktivität eine einzige Aufgabe Aktivität ist. Read here. Danach

"singleTask" und "singleInstance" Aktivitäten können nur eine Aufgabe beginnen. Sie sind immer die Wurzel des Aktivitätsstapels. Darüber hinaus kann das Gerät nur eine Instanz der Aktivität gleichzeitig speichern - nur eine solche Aufgabe.

Um dieses Szenario zu vermeiden, ändern Sie den Startmodus der Aktivität 1 in den Standardmodus.

+0

Eigentlich ist meine erste Aktivität die Hauptaktivität meiner App. Und wenn ich diesen Aktivitätsstandard mache, wird er immer erzeugt, wenn ich von Sekunde zu zuerst umschalte. Aber ich möchte nicht die erste Aktivität aufrufen. Stattdessen möchte ich New Intent aufrufen. Deshalb habe ich es mit singleTask launchmode erstellt. –

+0

Wenn in diesem Fall die erste Aktivität von der zweiten Aktivität gestartet wird, wird die zweite Aktivität beendet. – seema

0

Sie können eine neue Aktivität, die Sie öffnen möchten, ohne finish() Ihre aktuelle/vorherige Aktivität mit finish() öffnen.

Sobald Sie mehrere Aktivitäten ohne die vorherigen finish() öffnen, wird das Betriebssystem den Aktivitätsstapel automatisch verwalten.

Verwandte Themen