【发布时间】:2014-06-18 15:22:56
【问题描述】:
我在我的应用程序上使用 Google+ 登录,并遵循 Getting Started 和 Google+ Sign-in for Android 等参考。
所以情况如下:
我有一个 LoginActivity 和一个 MainActivity,它们都在 BaseActivity 上扩展(因此它们可以共享 GoogleApiClient 的实例和必要的接口实现),当我登录时,LoginActivity 会执行以下操作:
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);
mSignInClicked = false;
launchMain();
}
private void launchMain() {
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
finish();
}
MainActivity 将启动,太棒了!
但是当我想退出 MainActivity 时,我会执行以下操作:
protected static GoogleApiClient mGoogleApiClient;
public void signOut() {
if (mGoogleApiClient.isConnected()) {
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
mGoogleApiClient.disconnect();
mGoogleApiClient.connect();
Intent i = new Intent(getApplicationContext(),LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
}
}
mGoogleApiClient.isConnected() 检查总是错误的,我永远无法断开连接。
除此之外,我很困惑为什么要在断开连接后立即进行连接。
【问题讨论】:
标签: android google-plus google-play-services