Android Back Stack wiederherstellen, nachdem App geschlossen wurde

9

Was ist die beste Vorgehensweise zum Verwalten / Wiederherstellen der Anwendung back stack zwischen mehreren Sitzungen?

Beispiel für einen Workflow:

  1. Aktivität A gestartet (Stapel: A)
  2. Aktivität B gestartet (Stack: A B)
  3. Aktivität C gestartet (Stack: A B C)
  4. ...
  5. Der Benutzer benutzt eine andere Anwendung (sagen wir mal die Google Mail App) für eine Weile
  6. ...
  7. Der Benutzer kehrt zu meiner Anwendung zurück, aber der Backstack wurde von Android gelöscht.

In Schritt 7 möchte ich Aktivität C wieder aufnehmen lassen. Wenn der Benutzer die Zurück-Taste zweimal drückt, kehrt er zu Aktivität B und dann zu Aktivität A zurück.

[Bearbeiten] Details hinzufügen.

Nach Schritt 7 oben, Was passiert standardmäßig in Android ist dies:

  1. Aktivität A wurde gestartet (Stapel: leer, und C wird hinzugefügt)

Und ich möchte, dass der Benutzer das Gefühl hat, dass er immer noch dieselbe Sitzung benutzt:

  1. Aktivität C wird fortgesetzt (Stapel: A B C)
  2. Benutzer drückt Zurück-Taste, Aktivität B wird fortgesetzt (Stapel: A B)
  3. Benutzer drückt Zurück-Taste, Aktivität A wird fortgesetzt (Stapel: A)

Was wäre ein guter Ansatz für diese Situation, während Speicherlecks vermieden werden?

[Zweiter EDIT] Ich habe eine Workaround mit einem UIController Commong-Klasse für alle Aktivitäten und eine LauncherActivity zum Delegieren der Logik an den UIController.

Da ich den Backstack nur neu erstellen muss, wenn ActivityC gestartet wurde, scheint diese Lösung gut zu funktionieren:

%Vor%

Wenn jemand eine bessere Lösung hat, zögern Sie nicht, es zu veröffentlichen.

    
David 26.07.2011, 20:32
quelle

1 Antwort

5

Klingt so, als sollten Sie dies auf "true" setzen und Android die Verwaltung des Aktivitätsstapels überlassen.

android: alwaysRetainTaskState

  

Wenn dieses Attribut in der Stammaktivität eines Tasks auf "true" gesetzt ist, tritt das gerade beschriebene Standardverhalten nicht auf. Die Aufgabe behält alle Aktivitäten in ihrem Stapel auch nach einer langen Zeit bei.

    
CrackerJack9 04.08.2011, 13:37
quelle