我有一个活动(登录)和一个班级(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类的任何地方。 为什么会这样?
答案 0 :(得分:2)
在FacebookSDK库中转到onCreate()
的{{1}}方法,您会发现以下声明:
WebDialog.java
在
之后添加以下语句 spinner = new ProgressDialog(getContext());
你准备好了!