2010-12-15 12 views
0

Kann mir jemand sagen, ob es eine Möglichkeit gibt, dem Aktivitätsstapel (Aktivitätenverlauf) aktuelle Aktivitäten hinzuzufügen. Ich habe Situation wie folgt:So fügen Sie dem Aktivitätsstapel die aktuelle Aktivität hinzu

  1. Benutzer neue Tätigkeit beginnt - A (was ich will nicht auf Stapel legen)
  2. Benutzer startet neue Aktivität (B) von A
  3. Benutzer drückt BACK-Taste aus B
  4. B weg ist, aber A ist auch
  5. gegangen

Wenn die Benutzeraktivität B beginnt, möchte ich eine in der Geschichte zu halten, der Lage sein, wieder mit bACK-Taste.

Die einzige Sache, die ich in meinen Gedanken habe, ist, neue Aktivität A von B in onKeyDown() Methode zu starten. Aber vielleicht gibt es einen besseren Weg?

+0

Wenn Sie Ihnen Aktivität auffrischen wollen „A“, wenn es von B dann verwenden onActivityResult zu aktualisieren – Eby

Antwort

0

Satz android: clearTaskOnLaunch = „true“ in der Wurzelaktivität (in der Manifest-Datei)

auch, wenn Sie von B nach A gehen verhindern wollen (wenn der Benutzer drücken zurück), können Sie die Tropfen sollten „keine Geschichte“ Flagge

docs:

Wenn dieses Attribut auf „true“ in der Wurzelaktivität einer Aufgabe wird der Stapel bis auf die Wurzelaktivität gelöscht, wenn der Benutzer die Aufgabe und kehrt läßt es. Mit anderen Worten, es ist das genaue Gegenteil von alwaysRetainTaskState. Der Benutzer gibt immer an die Aufgabe in seinem Ausgangszustand, selbst nach einer vorübergehenden Abwesenheit

http://developer.android.com/guide/topics/fundamentals.html#clearstack http://developer.android.com/guide/topics/manifest/activity-element.html#clear

+0

Es wäre toll, wenn das geklappt hat. Das Problem ist, dass es nicht so ist. In einer anderen Frage hat jemand gesagt, dass die Schaltfläche HOME die Root-Aktivität nicht beendet, so dass sie nicht erneut gestartet werden kann. – Seraphis

+0

Vielleicht füge ich hinzu, dass die Aktivität A von meinem Widget gestartet wird. Ich weiß nicht, ob sich irgendetwas ändert – Seraphis

+0

haben beim Start auf Aktivität A * eine klare Aufgabe gesetzt und * die Flagge ohne Historie entfernt? Wie ging das? –

1

Wenn Sie nicht beenden() aufrufen, für die Aktivität A, wenn die Benutzeraktivität B beginnt wird es dabei sein, wenn die Benutzeraktivität beendet B.

+0

aufgerufen wird, wenn Ich starte Aktivität A mit Flag Intent.Activity_flag_no_history, dann wird es nicht. Das ist das Problem. – Seraphis

1

Das ist eigentlich das, was in den normalen Lebenszyklus einer Anwendung geschieht. Wenn Sie in A nicht finish() aufrufen, kehrt die Anwendung zu A zurück, wenn B beendet ist.

+0

Wie ich im Kommentar schrieb: Es wird nicht mit Flag no_history ... – Seraphis

+1

Warum genau müssen Sie dieses Flag verwenden, wenn Sie zurück zu Ihrer App gehen möchten? Bitte erläutern Sie ein wenig mehr, warum Sie diese Flagge setzen mussten, das würde uns helfen, Ihnen zu antworten. –

+0

Weil ich Situation verhindern möchte wie: Benutzer startet Aktivität A -> Benutzer startet Aktivität B von A -> Benutzer drückt HOME -> Benutzer startet Aktivität A, aber es geht direkt zu B – Seraphis

Verwandte Themen