Sto lavorando a un'app che avvia l'attività del browser per eseguire un'autorizzazione OAuth su Twitter. Questo processo utilizza un url di richiamata che rilancerà l'attività che ha avviato l'attività del browser in primo luogo.L'apertura dell'attività del browser, ma impedisce che si trovi nella cronologia delle attività
Il mio problema è che le pagine del browser rimangono nello stack cronologia e quando l'utente fa quindi clic indietro dall'attività delle preferenze che ha avviato il browser in primo luogo, non tornano all'attività principale dell'app, ma invece sono riportati nel browser. Ho provato ad aggiungere flag all'intento di avvio per prevenire la cronologia e resettare in chiaro, ma non sembra funzionare quando sono in esecuzione sul mio telefono, solo sugli emulatori.
Qui è il codice che sto usando per lanciare l'attività del browser:
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);
Qualcuno ha idea di quello che potrebbe essere sbagliato?
che chiuderà l'attività che ho effettivamente voglia di rimanere aperti, qui è una sequenza di eventi . L'app inizia con MainActivity, l'utente apre PreferencesActivity, quindi l'utente fa clic su Autorizza Twitter che avvia l'attività del browser con il codice precedente, passandogli un url di richiamata che PreferencesActivity ha un filtro intent per gestire. L'utente accede a Twitter, lo autorizza ad essere utilizzato dall'app e il browser esegue l'url di richiamata che riattiva PreferencesActivity attraverso il suo filtro di intent. In questo momento, se l'utente fa clic sul tasto "Indietro", voglio che torni a MainActivity. – jaredbro
Perché riattivare PreferencesActivity con IntentFilter anziché utilizzare startActivityForResult? Non sono sicuro se funzionerebbe nel tuo caso in quanto non conosco i dettagli del tuo codice, ma potrebbe essere un'idea? In questo modo davvero tornerai nella cronologia dello stack piuttosto che aprire un'altra istanza di PreferencesActivity. Non è sicuro se sia quello che fa adesso, più facile da vedere con il codice completo, i callback, i filtri intent, ecc. –