Anzeige der App-Hauptmenü / Home-Bildschirm, wenn zu App Rückkehr nach einer externen Aktivität zu haben / Intent

StackOverflow https://stackoverflow.com/questions/2453398

  •  20-09-2019
  •  | 
  •  

Frage

Ich fange Android Market über meine App für ähnliche Produkte mit diesem Code zu suchen:

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

Dies funktioniert gut für zu ähnlichen Produkten. Allerdings, wenn ich die Home-Taste zu schlagen, während auf dem Markt, wenn ich wieder öffnen Sie die App noch zeigen Marktergebnisse. Ich möchte in diesem Fall in das Hauptmenü gehen.

Gibt es eine Lösung?

War es hilfreich?

Lösung

Leider ist FLAG_ACTIVITY_NO_HISTORY wahrscheinlich nicht die richtige Lösung. Beachten Sie die Semantik der es - die Aktivität scheint nicht nur in der Geschichte. Wenn also der Benutzer Taps auf eines der Dinge, in es auf die nächste Aktivität zu gehen, dann wieder drücken, werden sie nicht mit dem vorherigen zurückkehren (aber die davor). Dies ist selten, was Sie wollen.

Schlimmer noch, wenn sie auf eine zweite Aktivität aus dem Marktgeschehen gehen, drücken Sie nach Hause, und Rückkehr zu Ihrer App, die zweite Aktivität wird noch da sein (es selbst in der Geschichte hält).

Die richtige Flagge für diese Situation ist FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET .

Andere Tipps

Wenn Sie fügen Sie den FLAG_ACTIVITY_NO_HISTORY Flagge auf die Absicht , wird es nicht auf die Geschichte Stapel gehalten werden. Wenn der Benutzer navigiert zu Ihrer Anwendung zurück, die letzte Aktivität, die sichtbar war, bevor Sie den Markt eingeführt wird angezeigt.

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 korrekt: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET ist eine bessere Passform für das, was Sie brauchen.

Das ist kein Problem.

Wenn Sie nach Hause auf dem Market-App drücken sie nicht geschlossen ist, nur unterbrochen. Also, wenn Sie es wieder öffnen Sie es wieder. Überprüfen Sie Android Aktivität des Lebenszyklus .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top