Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GoogleAppClient未断开连接_Android_Google Api_Google Api Client_Google Signin_Googlesigninapi - Fatal编程技术网

Android GoogleAppClient未断开连接

Android GoogleAppClient未断开连接,android,google-api,google-api-client,google-signin,googlesigninapi,Android,Google Api,Google Api Client,Google Signin,Googlesigninapi,嗨,我提供了我的代码片段,用于注销谷歌帐户。单击“注销”按钮,我调用此注销功能。我能够成功地使用google帐户登录。使用下面的代码,我可以注销谷歌帐户,但需要多次点击注销按钮才能注销。我认为mGoogleApiClient连接时间太长,因此进入mGoogleApiClient.isConnected()条件 有人能帮我一按“注销”按钮就注销谷歌帐户吗 public void logout(String st) {`enter code here` mGoogleApiClient.con

嗨,我提供了我的代码片段,用于注销谷歌帐户。单击“注销”按钮,我调用此注销功能。我能够成功地使用google帐户登录。使用下面的代码,我可以注销谷歌帐户,但需要多次点击注销按钮才能注销。我认为mGoogleApiClient连接时间太长,因此进入mGoogleApiClient.isConnected()条件

有人能帮我一按“注销”按钮就注销谷歌帐户吗

public void logout(String st)
{`enter code here`
   mGoogleApiClient.connect();
   if (mGoogleApiClient.isConnected()||mGoogleApiClient.isConnecting()) 
   {
        if(mGoogleApiClient.isConnected()) 
        {
            mGoogleApiClient.clearDefaultAccountAndReconnect();
            mGoogleApiClient.disconnect();
            System.err.println("LOG OUT ^^^^^^^^^^^^^^^^^^^^ SUCESS");
            refreshpage();
        }
    }
}

public void refreshpage()
{
    Intent intent = new Intent(this, SignInActivity.class);
    startActivity(intent);
}

你为什么不这样用呢

Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
        new ResultCallback<Status>() {
            @Override
            public void onResult(Status status) {
                // ...
            }
        });
Auth.GoogleSignInApi.signOut(mgoogleapclient.setResultCallback)(
新的ResultCallback(){
@凌驾
公共void onResult(状态){
// ...
}
});

为什么不这样使用

Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
        new ResultCallback<Status>() {
            @Override
            public void onResult(Status status) {
                // ...
            }
        });
Auth.GoogleSignInApi.signOut(mgoogleapclient.setResultCallback)(
新的ResultCallback(){
@凌驾
公共void onResult(状态){
// ...
}
});

还是一样。。。在5或6次单击后,其断开连接:(答案已更新,通过使用此选项,您也可以在我尝试时显示上述代码的一些(进度条)/(禁用按钮),而无需对if(mgoogleapclient.isConnected()进行if条件检查)它抛出了mGoogleApiClient尚未连接错误。但当我再次添加检查时,其行为相同。需要进行5-6次单击才能将其注销。我认为将mGoogleApiClient的状态从连接更改为connecteddear需要一些时间。这是一个异步调用,应该进行,但问题是您必须显示一些进度条或者,直到你在callbackStill中得到一些结果,点击5或6次后,它会断开连接:(答案更新,通过使用此选项,你可以显示上述代码的一些(进度条)/(禁用按钮),当我尝试时,也没有对if(mgoogleapclient.isConnected()进行if条件检查)它抛出了mGoogleApiClient尚未连接错误。但当我再次添加检查时,其行为相同。需要进行5-6次单击才能将其注销。我认为将mGoogleApiClient的状态从连接更改为connecteddear需要一些时间。这是一个异步调用,应该进行,但问题是您必须显示一些进度条或者什么的,直到你在回调中得到一些结果