Googleapiclient не отключается

Привет, я предоставляю свой фрагмент кода для выхода из учетной записи Google. При нажатии кнопки «Выход» я вызываю эту функцию выхода из системы. Я смог успешно войти в систему с помощью учетной записи Google. Используя приведенный ниже код, я могу выйти из учетной записи Google, но мне нужно много раз нажимать кнопку «Выход», чтобы выйти из системы. Я думаю, что mGoogleApiClient занимает слишком много времени для подключения и, следовательно, для входа в состояние mGoogleApiClient.isConnected().

Может ли кто-нибудь помочь мне выйти из учетной записи Google одним нажатием кнопки «Выход»?

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);
}

person AR5    schedule 23.08.2016    source источник


Ответы (1)


почему бы тебе не использовать вот так

Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
        new ResultCallback<Status>() {
            @Override
            public void onResult(Status status) {
                // ...
            }
        });
person Rahul    schedule 23.08.2016
comment
Все то же самое... После 5 или 6 кликов он отключается :( - person AR5; 23.08.2016
comment
ответ обновлен, с помощью этого вы можете показать некоторые (индикатор выполнения) / (кнопка отключения) - person Rahul; 23.08.2016
comment
Для приведенного выше кода также, когда я пытался без проверки условия if (mGoogleApiClient.isConnected()), он выдавал ошибку mGoogleApiClient еще не подключен. Но когда я снова добавил чек, он ведет себя так же. Чтобы выйти из системы, нужно 5-6 кликов. Я думаю, что потребуется некоторое время, чтобы изменить статус mGoogleApiClient с подключения к подключенному - person AR5; 24.08.2016
comment
дорогой, это асинхронный вызов, который он должен принять, но дело в том, что вам нужно показать какой-то индикатор выполнения или что-то в этом роде, пока вы не получите какой-то результат в обратном вызове - person Rahul; 24.08.2016