繁体   English   中英

Android谷歌:在另一项活动中注销谷歌

[英]Android google: Logout google in another activity

我使用com.google.android.gms.common.SignInButton在A中创建登录谷歌应用程序。然后我创建另一个活动B使用按钮android自定义注销此连接谷歌。 但是,当我在活动B的A活动中调用静态方法注销时,我无法注销此连接谷歌。谁对我的问题有任何理想? 我用户

private GoogleApiClient mGoogleApiClient;
    private boolean mIntentInProgress;
    private boolean mSignInClicked;
    private ConnectionResult mConnectionResult; 

在一项活动中。 并通过调用方法为Bactivity中的按钮注销设置OnclickListioner

public static void signOutFromGplus() {
        if (mGoogleApiClient.isConnected()) {
            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
            mGoogleApiClient.disconnect();
            Toast.makeText(this, getString(R.string.logout_status) , Toast.LENGTH_LONG).show();
            MyLog.info(getString(R.string.logout_status));
        }
    }

但我给出了日志错误:Google api客户端必须连接。 请帮帮我...对不起我的英语不好

您必须使用GoogleApiClient创建一个Singleton。 然后你可以从另一个活动调用这个对象(在这种情况下为B)

GoogleApiClient googleApiClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home); //B Activity

GoogleApiClientHelper googleApiClientHelper = GoogleApiClientHelper.getInstance(getApplicationContext());
googleApiClient = googleApiClientHelper.getGoogleApiClient();
}

然后,您可以退出

    private void doLogOut() {
    if ( googleApiClient.isConnected() ) {
        Plus.AccountApi.clearDefaultAccount(googleApiClient);
        googleApiClient.disconnect();
        googleApiClient.connect();

        Intent loginActivity = new Intent(this, LoginActivity.class);
        startActivity(loginActivity);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM