1

Im Gegensatz zu Facebook-Login für Android finde ich GoogleApiClient für Android mit einigen Einschränkungen.Einschränkung von GoogleApiClient in Android

Ich verwende GoogleApiClient auf folgende Weise:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
     .requestEmail() 
     .requestProfile() 
     .build(); 

// Build a GoogleApiClient with access to the Google Sign-In API and the 
// options specified by gso. 
mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this, this) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
     .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 
     .build(); 

Später in meinem onConnected Rückruf,

@Override 
public void onConnected(@Nullable Bundle bundle) { 
    launchNextActivity(); 
} 
  1. Warum Google hat nur den Umfang der GoogleApiClient zu begrenzen, um eine Aktivität ? Kann ich nicht eine einzige Instanz von GoogleApiClient als Authentifizierungs-ID für meine App verwenden?

  2. Wie kann ich mich von einer anderen Aktivität abmelden? Sobald ich die Anmeldeaktivität verlassen habe, wird die GoogleApiClient-Instanz getrennt. (Dies erlaubt es mir nicht, die Verwendung, die Instanz von mGoogleApiClient von dem globalen Namensraum sparend)

Antwort

0

Sie könnten eine GoogleApi-Singleton erstellen.

Etwas wie this.

+0

Ich habe das gesehen. Auch dieses Singleton ist auf den Kontext beschränkt. Überprüfen Sie die buildGoogleApiClient() -Methode. Sobald wir also die Aktivität verlassen (Aufruf beenden), ist der Kontext nicht mehr gültig, mGoogleApiClient.isConnected() gibt erneut false zurück. Lass es mich wissen, wenn ich etwas verpasse. – jay

Verwandte Themen