2010-03-16 10 views

Antwort

15

Entschuldigung, FLAG_ACTIVITY_NO_HISTORY ist wahrscheinlich nicht die richtige Lösung. Beachten Sie die Semantik - die Aktivität erscheint nicht in der Historie. Wenn der Benutzer also auf eines der Dinge klickt, um zur nächsten Aktivität zu gehen, und dann zurückdrückt, kehren sie nicht zur vorherigen (sondern zur vorherigen) zurück. Das ist selten was du willst.

Schlimmer, wenn sie zu einer zweiten Aktivität von der Marktaktivität gehen, drücken Sie nach Hause, und kehren Sie zu Ihrer App zurück, die zweite Aktivität wird immer noch da sein (es behält sich in der Geschichte).

Die richtige Flagge für diese Situation ist FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET.

+0

Es hat mir sehr geholfen. +1 für deine Bemühungen. – Vivek

0

Dies ist kein Problem.

Wenn Sie auf der Market-App nach Hause drücken, ist es nicht geschlossen, nur pausiert. Wenn Sie es also wieder öffnen, setzen Sie es fort. Überprüfen Sie Android activity's lifecycle.

+0

Ja, es ist ein Problem, da dies nicht das Verhalten ist, das der Benutzer erwartet. Wie wäre es mit dir lesen: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET – Fernwilter

10

Wenn Sie das Flag FLAG_ACTIVITY_NO_HISTORY zur Absicht hinzufügen, wird es nicht im Verlaufsstapel gespeichert. Wenn der Benutzer zu Ihrer Anwendung zurück navigiert, wird die letzte Aktivität angezeigt, die vor dem Start des Marktplatzes sichtbar war.

Intent intent = new Intent(Intent.ACTION_VIEW, 
    Uri.parse("http://market.android.com/search?q=pub:\"some txt\"")); 

c.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
c.startActivity(intent); 

Edit:hackbod ist richtig: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET ist eine bessere Passform für das, was Sie brauchen.

+0

Dies funktionierte. Vielen Dank –

Verwandte Themen