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()。
我在做什么错?
第一个活动不会在其中一个生命周期事件中调用'disconnect'吗?例如在'onPause'或'onStop'上 – Ryan
不,它不会断开连接。 – jay
您确定只能创建mGoogleApiClient的一个实例吗? –