2013-07-22 28 views
0

我有一個活動(登錄)和一個類(FacebookLogin)。Facebook中的回調問題,同時用戶在Facebook登錄頁面加載時點擊任何地方

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

你在jellyBean上測試它嗎? – dd619

+0

在模擬器中測試api級別17. – keen

+0

進度對話框隱藏在觸摸屏幕時? – dd619

回答

2

轉到在FacebookSDK庫WebDialog.javaonCreate()方法,你會發現下面的語句:

spinner = new ProgressDialog(getContext()); 

spinner.setCanceledOnTouchOutside(false); 

你準備去後添加以下語句!

+0

謝謝。有效。 – keen

相關問題