Google plus'选择帐户'取消时选择帐户不会消失?

时间:2015-02-12 04:58:22

标签: java android google-plus google-login google-plus-signin

我正在尝试使用google plus登录并且工作正常。我有多个帐户与我的帐户相关联,因此它显示弹出选择帐户但是当我点击取消按钮然后它确实消失了。它再次出现&再次。告诉我怎么做的方法?enter image description here

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
     if (requestCode == RC_SIGN_IN) 
     {
         Log.i("RAE","Result is  ");
            if (resultCode != RESULT_OK) {
              mSignInClicked = false;
            }

            mIntentInProgress = false;

            if (!mGoogleApiClient.isConnecting()) {
              mGoogleApiClient.connect();
            }
          }


}

连接失败

@Override
    public void onConnectionFailed(ConnectionResult result) {
        // TODO Auto-generated method stub
         if (!mIntentInProgress && result.hasResolution()) {
                try {
                  mIntentInProgress = true;
                  startIntentSenderForResult(result.getResolution().getIntentSender(),
                      RC_SIGN_IN, null, 0, 0, 0);
                } catch (SendIntentException e) {
                  // The intent was canceled before it was sent.  Return to the default
                  // state and attempt to connect to get an updated ConnectionResult.
                  mIntentInProgress = false;
                  mGoogleApiClient.connect();
                }
              }

    }

1 个答案:

答案 0 :(得分:1)

您没有使用mSignInClicked的值来确定是否startIntentSenderForResult() - 这意味着即使用户点击取消按钮,您仍然会调用{{1} }一次又一次 - 将startIntentSenderForResult()添加到您的mSignInClicked语句中:

if

如果您仍然喜欢首次启动时的自动登录体验,那么如果if (!mIntentInProgress && mSignInClicked && result.hasResolution()) { ,您还应该在mSignInClicked中将true设置为onCreate() (即,第一次启动活动)。这将确保每次用户启动活动时savedInstanceState == null至少完成一次。注意:您可能还想设置shared preference表示您尝试自动登录,如果您已尝试自动登录并且已取消,则不会再次尝试自动登录。