2016-06-26 8 views
0

2つの異なるアクティビティで使用されている同じコードが異なる出力を生成しているこの奇妙な動作に対処しています。複数のfacebook LoginButtonを複数のアクティビティで設定する

コードはそう、標準のFacebook SDKのログインの繰り返しです:二つの異なる活動に使用され、これと同じ正確なコードが異なる動作をさ

private CallbackManager fbCallbackManager; 
private LoginButton signFacebookButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    FacebookSdk.sdkInitialize(context); 
    fbCallbackManager = CallbackManager.Factory.create(); 

    setContentView(R.layout.sign); 
    signFacebookButton = (LoginButton) findViewById(R.id.sign_fb_button); 
    signFacebookButton.setReadPermissions("public_profile"); 
    signFacebookButton.setReadPermissions("email"); 
    signFacebookButton.registerCallback(fbCallbackManager, fbCallback); 

} 

private FacebookCallback<LoginResult> fbCallback = new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(final LoginResult loginResult) { 
     Log.d("Facebook Callback", "success"); 
    } 

    @Override 
    public void onCancel() { 
     Log.d("Facebook Callback", "cancel"); 
    } 

    @Override 
    public void onError(FacebookException e) { 
     Log.d("Facebook Callback", "error"); 
    } 
}; 

最初に呼び出されたアクティビティでは正常に動作しますが、最初のアクティビティをスキップして(ログインボタンをクリックしないため)、2番目のアクティビティで新しいログインボタンをクリックすると、単に動作していません。数秒間フェイスブックのプログレスバーが表示されても何も起こりません(コンソールにはログも表示されません)。どんな助けでも本当に感謝しています。

答えて

0

この背後に無駄に半日後、私はonActivityResult

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    this.fbCallbackManager.onActivityResult(requestCode, resultCode, data); 
} 
で実際fbcallbackManagerコールを行方不明になったことに気づきました
関連する問題