无法解雇CallbackManager

时间:2016-02-04 01:32:35

标签: android facebook

我正在我的应用上进行FB登录集成。我完成了所有必要的设置并生成了我的哈希密钥。我使用自定义UI视图进行登录,因此我在我的activty中实现了LoginManager,如下所示

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this);
    setContentView(R.layout.activity_account_front);
    callbackManager = CallbackManager.Factory.create();

    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // not called
            Log.e("fb_login_sdk", "callback success");
        }

        @Override
        public void onCancel() {
            // not called
            Log.e("fb_login_sdk", "callback cancel");
        }

        @Override
        public void onError(FacebookException e) {
            // not called
            Log.e("fb_login_sdk", "callback onError");
        }
    });

    final Activity activity = this;

    face = (ImageView) findViewById(R.id.face);
    face.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.e("fb_login_sdk", "click");
            List<String> perm = new ArrayList<String>();
            perm.add("email");
            LoginManager.getInstance().logInWithReadPermissions(activity, perm);
        }
    });

有了这个,我得到的最高点是imageview日志上的onclick。我已经实现了这个

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.e("Results", String.valueOf(resultCode));
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

但是在点击事件开始时没有打印任何日志。当我按下按钮时,微调器会短暂显示然后应用程序刚刚结束(不会崩溃)。我如何让它发挥作用,它让我疯狂,因为我花了大约一天时间来使这个工作。感谢

2 个答案:

答案 0 :(得分:0)

初始化facebook sdk时,尝试使用应用程序上下文而不是活动上下文。

替换此

FacebookSdk.sdkInitialize(this);

FacebookSdk.sdkInitialize(getApplicationContext());

希望它对你有用。

答案 1 :(得分:0)

对我来说,这很简单,也许是一种疏忽。正如@Arkar指出的那样,我忘了从我的AndroidManifest文件中删除这个特定的Activity,因此没有触发回调。

android:noHistory