0

1 つのアクティビティ (ログイン) と 1 つのクラス (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 クラスが呼び出されます。なぜこうなった?

4

1 に答える 1

2

FacebookSDK ライブラリのGotoonCreate() メソッドをWebDialog.java実行すると、次のステートメントが見つかります。

  spinner = new ProgressDialog(getContext());

その後に以下のステートメントを追加します

spinner.setCanceledOnTouchOutside(false);

あなたは行く準備ができています!

于 2013-07-22T09:38:00.763 に答える