Alles hat gut funktioniert, bis ich überprüfen wollte, was passiert, wenn der Benutzer auf die Schaltfläche Mit Facebook einloggen klickt, ohne dass eine Internetverbindung verfügbar ist.
Ein Toast zeigte sich:
Anmeldung fehlgeschlagen. Bitte kontaktieren Sie den Hersteller dieser App und bitten Sie sie, die Ausgabe # 1118578 an Facebook zu melden.
Im Logcat habe ich:
D / Facebook-Autorisierung (2824): Anmeldung vom Benutzer abgebrochen.
Ich habe versucht, diesen Toast loszuwerden und meine eigene Fehlermeldung in der onCancel()
-Methode anzuzeigen - aber ich kann keinen Weg finden, diesen Toast zu deaktivieren.
Wenn ich WiFi wieder aktiviert habe, funktioniert die einmalige Anmeldung nicht mehr!
Was könnte die Ursache dafür sein?
%Vor%BEARBEITEN:
Um meine eigene Frage zu beantworten, löschte android:launchMode="singleInstance"
aus dem Manifest in <activity>
das Problem # 1118578.
Allerdings benötige ich die android:launchMode="singleInstance"
für die OAuth-Anmeldung bei Twitter, da der Browser die Daten über eine neue Absicht an die Aktivität zurückgibt. Wenn ich android:launchMode="singleInstance"
im Manifest nicht zur Verfügung stelle, wird eine neue Aktivität gestartet, die den OAuth-Verifier nicht empfängt.
Gibt es eine Möglichkeit, Facebook und Twitter in derselben Aktivität zu verwenden?
Die einzige Lösung, an die ich denke, ist die Verwendung einer Dummy-Aktivität für Twitter4j mit singleInstance
.
Mein Weg, dies zu überwinden, bestand darin, den Rückruf in Twitter zu ändern, von "twitter: // callback" zu "http: // localhost / callback" und den android: launchMode="singleInstance" und den twitter intent- Filter aus dem Manifest.
Ich kann immer noch die Antwort in der WebView (anstatt auf der onResume () wie zuvor):
%Vor%