我正在尝试使用Facebook Android SDK登录Facebook,但状态回调仅在OPENING
会话状态下触发一次。之后,Facebook登录活动显示没有内容(我知道它的活动,因为它具有我在strings.xml中为title_facebook_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
(或创建,甚至是停止)的回调不会发生火灾,只会打开?
答案 0 :(得分:9)
您需要致电 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();
}