gpt4 book ai didi

android - GoogleApiClient 在注销时从未连接

转载 作者:行者123 更新时间:2023-11-29 01:41:31 25 4
gpt4 key购买 nike

我在我的应用程序上使用 Google+ 登录,并遵循了诸如 Getting Started 之类的引用和 Google+ Sign-in for Android .

所以情况是这样的:
我有一个 LoginActivity 和一个 MainActivity,它们都在 BaseActivity 上扩展(因此它们可以共享 GoogleApiClient 的实例和必要的接口(interface)实现),当我登录时,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() 检查始终为假,我永远无法断开连接。

除此之外,我很困惑为什么我应该在断开连接后立即进行连接。

最佳答案

所以我将回答我自己的问题:

我在 BaseActivity 上这样做:

protected void onStop() {
super.onStop();

if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
}

意思是当我尝试断开连接时,它已经断开了。
这里最主要的是遵守this answer中的规则在我的情况下,规则是这样的:

Implement mostly in a baseactivity, and have the others extend that. This is connect/disconnect in each activity, but with code in only one place.

关于android - GoogleApiClient 在注销时从未连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com