1

我正在使用谷歌登录进行身份验证。mGoogleApiClient.isConnected即使在mGoogleApiClient.connect后也会返回false

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

mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this, this) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
     .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 
     .build(); 

每当用户启动我检查会话是否仍然可用的应用程序。

if (isGoogleSignedIn()) { 
    mGoogleApiClient.connect(); 

onConnected回调,我启动下一个活动。

@Override 
public void onConnected(@Nullable Bundle bundle) { 
    GlobalUtils.googleApiClient = mGoogleApiClient; 
    launchNextActivity(); 
} 

我保存参考mGoogleApiClient我GlobalUtils使用户登出实现更容易。以下是我的logoutUser方法。

public static void logOutUser() { 

    // Google logout 
    if (googleApiClient != null && googleApiClient.isConnected()) { 
     Auth.GoogleSignInApi.signOut(googleApiClient); 
    } 

    googleApiClient = null; 
} 

但这里的问题是,googleApiClient.isConnected()总是只要我离开登录活动返回false。我确保在用户输入应用程序主要活动之前始终调用googleApiClient.connect()。

我在做什么错?

+0

第一个活动不会在其中一个生命周期事件中调用'disconnect'吗?例如在'onPause'或'onStop'上 – Ryan

+0

不,它不会断开连接。 – jay

+0

您确定只能创建mGoogleApiClient的一个实例吗? –

回答

-2

我认为问题是你没有连接谷歌API客户端。尝试连接,只要你使用谷歌API,并断开,当你不再使用。希望这个帮助。

相关问题