用户在Facebook登录页面加载时点击任意位置的回调问题

时间:2013-07-22 06:02:59

标签: android facebook facebook-android-sdk

我有一个活动(登录)和一个班级(FacebookLogin)。

public void loginWithFacebook(boolean fetchUserInfo) {

Log.d(TAG, "Logging into Facebook.");

String applicationId = Utility.getMetadataApplicationId(activity
        .getBaseContext());
mCurrentSession = Session.getActiveSession();
if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
    Session session = new Session.Builder(activity.getBaseContext())
            .setApplicationId(applicationId).build();
    Session.setActiveSession(session);
} else {
    Log.d(TAG, "SESSION open");
}
mCurrentSession = Session.getActiveSession();

if (!mCurrentSession.isOpened()) {
    Session.OpenRequest openRequest = null;
    openRequest = new Session.OpenRequest(activity);
    if (openRequest != null) {
        openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
            openRequest.setPermissions(Arrays.asList("user_birthday",
                    "email", "user_hometown"));
            openRequest
                    .setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
            mCurrentSession.openForRead(openRequest);


    }
} 

}

这是Facebook类的方法。在登录活动中指定onActivityResult方法。 这很有效,除非用户在加载Facebook登录页面时点击任意位置。 如果用户点击它调用onActivityResult类的任何地方。 为什么会这样?

1 个答案:

答案 0 :(得分:2)

在FacebookSDK库中转到onCreate()的{​​{1}}方法,您会发现以下声明:

WebDialog.java

之后添加以下语句
  spinner = new ProgressDialog(getContext());
你准备好了!