Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session.openActiveSession仅在Facebook Android SDK中调用OPENING_Android_Facebook_Facebook Android Sdk - Fatal编程技术网

Session.openActiveSession仅在Facebook Android SDK中调用OPENING

Session.openActiveSession仅在Facebook Android SDK中调用OPENING,android,facebook,facebook-android-sdk,Android,Facebook,Facebook Android Sdk,我正在尝试使用Facebook Android SDK登录Facebook,但是,状态回调仅在会话状态下启动一次。之后,一个Facebook登录活动出现了一小会儿,没有任何内容(我知道它就是那个活动,因为它的标题是我在strings.xml中为title\u Facebook\u login设置的)。没有其他回调被激发,没有异常,没有崩溃。它只是在我最初的活动中永远等待。这是我的密码: Session.openActiveSession(parent, true, new Session.Sta

我正在尝试使用Facebook Android SDK登录Facebook,但是,状态回调仅在会话状态下启动一次。之后,一个Facebook登录活动出现了一小会儿,没有任何内容(我知道它就是那个活动,因为它的标题是我在strings.xml中为
title\u Facebook\u login
设置的)。没有其他回调被激发,没有异常,没有崩溃。它只是在我最初的活动中永远等待。这是我的密码:

Session.openActiveSession(parent, true, new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            if(state == SessionState.OPENED){
                String accessToken = session.getAccessToken();
            }
        }
    });

为什么
SessionState.OPENED
(或CREATED,甚至CLOSED)的回调不会启动,而只会打开?

您需要调用onActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
    }
所以当登录完成时。它进入相同的活动并调用状态回调,会话状态为打开

初始化UiLifecycleHelper

private UiLifecycleHelper uiHelper;
在oncreate中,需要在setContentView之前调用

uiHelper = new UiLifecycleHelper(this, statusCallback);
        uiHelper.onCreate(savedInstanceState);
并且需要在

    @Override
    protected void onResume() {
        super.onResume();
        uiHelper.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }

您是否在onActivity结果代码中调用会话?否,它在
onCreate
上。是否应在活动上启用
?我对Android非常陌生,所以请原谅我,如果这是一些琐碎的事情。你遵循facebook教程了吗?不完全是。。我不认为会话状态的触发与视图有关。。。但很明显我错了:)是的,这就成功了。我没有在活动中重写onActivityResult方法。我这样做了,它启动了
并打开了
。谢谢,这有助于登录…一次…然后按钮变为注销按钮-我按下了它,我注销了…但随后按钮变回登录,按下它,我又注销了…我做错了什么?