Ich arbeite an einer App, die die Browseraktivität startet, um eine Twitter-OAuth-Autorisierung durchzuführen. Dieser Prozess verwendet eine Callback-URL, die die Aktivität, mit der die Browseraktivität gestartet wurde, erneut startet.Öffnen der Browseraktivität, aber verhindern, dass sie im Aktivitätsverlauf enthalten ist
Mein Problem besteht darin, dass die Browser-Seiten im Verlaufsstapel bleiben und wenn der Benutzer dann von den Voreinstellungen, die den Browser gestartet haben, zurückklickt, kehren sie nicht zur Hauptaktivität der App zurück, sondern stattdessen werden zurück zum Browser gebracht. Ich habe versucht, Flags zu dem Start-Intent hinzuzufügen, um den Verlauf zu verhindern und auf Clear zurückzusetzen, aber es scheint nicht zu funktionieren, wenn es auf meinem Telefon läuft, nur auf den Emulatoren.
Hier ist der Code, ich bin mit der Browser-Aktivität zu starten:
Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));
webIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
webIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
webIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
ctx.startActivity(webIntent);
jemand eine Idee, was falsch sein könnte?
, die die Aktivität schließen wird, die ich will eigentlich offen bleiben, hier eine Abfolge von Ereignissen ist . App startet mit einer MainActivity, der Benutzer öffnet PreferencesActivity, dann klickt der Benutzer auf Authorize Twitter, der die Browseraktivität mit dem obigen Code startet, und übergibt ihm eine Callback-URL, für die PreferencesActivity einen Intent-Filter hat. Der Benutzer meldet sich bei Twitter an, autorisiert ihn für die Verwendung durch die App und der Browser führt die Callback-URL aus, die PreferencesActivity durch den Intent-Filter wieder aktiviert. Wenn der Benutzer zu diesem Zeitpunkt auf die Schaltfläche "Zurück" klickt, möchte ich, dass er zu MainActivity zurückkehrt. – jaredbro
Warum reaktivieren Sie PreferencesActivity mit dem IntentFilter statt startActivityForResult? Ich bin mir nicht sicher, ob es in Ihrem Fall funktioniert, da ich die Details Ihres Codes nicht kenne, aber könnte das eine Idee sein? Auf diese Weise würden Sie wirklich zurück in die Stapelhistorie gehen, anstatt eine andere Instanz von PreferencesActivity zu öffnen. Nicht sicher, wenn es das ist, was es jetzt macht, einfacher zu sehen mit dem kompletten Code, Callbacks, Intent-Filter, etc. –