我正在尝试使用google plus登录并且工作正常。我有多个帐户与我的帐户相关联,因此它显示弹出选择帐户但是当我点击取消按钮然后它确实消失了。它再次出现&再次。告诉我怎么做的方法?
@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();
}
}
}
答案 0 :(得分:1)
您没有使用mSignInClicked
的值来确定是否startIntentSenderForResult()
- 这意味着即使用户点击取消按钮,您仍然会调用{{1} }一次又一次 - 将startIntentSenderForResult()
添加到您的mSignInClicked
语句中:
if
如果您仍然喜欢首次启动时的自动登录体验,那么如果if (!mIntentInProgress && mSignInClicked && result.hasResolution()) {
,您还应该在mSignInClicked
中将true
设置为onCreate()
(即,第一次启动活动)。这将确保每次用户启动活动时savedInstanceState == null
至少完成一次。注意:您可能还想设置shared preference表示您尝试自动登录,如果您已尝试自动登录并且已取消,则不会再次尝试自动登录。