Android onActivityResults在关闭活动时不触发

Android onActivityResults在关闭活动时不触发,android,facebook-sdk-3.1,Android,Facebook Sdk 3.1,当Facebook在ActivityB中返回完我的用户数据后,我正试图在ActivityA中触发onActivityResults,但我没有任何运气。有人有什么见解吗?通过内部类关闭活动是否有任何限制 public class ActivityB extends Activity { private static final String URL_PREFIX_FRIENDS = "https://graph.facebook.com/me/friends?access_tok

当Facebook在ActivityB中返回完我的用户数据后,我正试图在ActivityA中触发onActivityResults,但我没有任何运气。有人有什么见解吗?通过内部类关闭活动是否有任何限制

public class ActivityB extends Activity {

        private static final String URL_PREFIX_FRIENDS = "https://graph.facebook.com/me/friends?access_token=";
        private Session.StatusCallback statusCallback  = new SessionStatusCallback();;// = new SessionStatusCallback();

        public class SessionStatusCallback implements Session.StatusCallback {

            //NewPermissionsRequest newPermissionsRequest = new NewPermissionsRequest(this, Arrays.asList("email"));

            @Override
            public void call(Session session, SessionState state, Exception exception) {

                session = Session.getActiveSession();

                if (session.isOpened()) //if (session.isOpened() && !isFetching)
                {


                    Request getMe = Request.newMeRequest(session, new GraphUserCallback()
                    {
                        @Override
                            public void onCompleted(GraphUser user, Response response)
                        {
                            if (user != null)
                            {

                                org.json.JSONObject graphResponse = response.getGraphObject().getInnerJSONObject();
                                String jsonData = graphResponse.toString();
                                String email = graphResponse.optString("email");
                                String id = graphResponse.optString("id");
                                String facebookName = graphResponse.optString("name");
                                Intent intent = new Intent();
                                setResult(RESULT_OK, intent);
                                finish();
                            }
                        }
                    });
                    getMe.executeAsync();
                }
            }   
        }


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



            List<String> permission=new ArrayList<String>();
            permission.add("email");

            Session session = new Session.Builder(this.getApplicationContext()).setApplicationId("40423423767677").build();
            Session.setActiveSession(session);

            if (!session.isOpened() && !session.isClosed()) {
                session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback).setPermissions(permission));
            } else {
                Session.openActiveSession(this, true, statusCallback);
            }

        }

       @Override
       public void onActivityResult(int requestCode, int resultCode, Intent data) {
           super.onActivityResult(requestCode, resultCode, data);
           Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
       }
}
公共类活动B扩展活动{
私有静态最终字符串URL\u前缀\u朋友=”https://graph.facebook.com/me/friends?access_token=";
private Session.StatusCallback StatusCallback=新会话StatusCallback();/=新会话StatusCallback();
公共类SessionStatusCallback实现Session.StatusCallback{
//NewPermissionsRequest NewPermissionsRequest=new-NewPermissionsRequest(这是Arrays.asList(“电子邮件”);
@凌驾
公共无效调用(会话、会话状态、异常){
session=session.getActiveSession();
if(session.isOpened())//if(session.isOpened()&&&!isFetching)
{
Request getMe=Request.newMeRequest(会话,new GraphUserCallback()
{
@凌驾
未完成公共无效(GraphUser用户,响应)
{
如果(用户!=null)
{
org.json.JSONObject graphResponse=response.getGraphObject().getInnerJSONObject();
字符串jsonData=graphResponse.toString();
字符串email=graphResponse.optString(“电子邮件”);
字符串id=graphResponse.optString(“id”);
字符串facebookName=graphResponse.optString(“名称”);
意图=新意图();
设置结果(结果正常,意图);
完成();
}
}
});
getMe.executeAsync();
}
}   
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
列表权限=新建ArrayList();
许可。添加(“电子邮件”);
Session Session=new Session.Builder(this.getApplicationContext()).setApplicationId(“40423423767677”).build();
Session.setActiveSession(Session);
如果(!session.isOpened()&&!session.isClosed()){
session.openForRead(newsession.OpenRequest(this).setCallback(statusCallback).setPermissions(permission));
}否则{
openActiveSession(this,true,statusCallback);
}
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
Session.getActiveSession().onActivityResult(此、请求代码、结果代码、数据);
}
}

您可以尝试
ClassB.finish()
。您是否设置了断点/日志以查看代码是否被调用???@codeMagic是的,我没有任何异常,没有错误=/。我也尝试过ActivityB.Finish(),但没有成功。好的,但是您是否设置了断点或日志来查看调用/未调用的内容?代码是否达到
setResult()
?如果是这样,您是否在ActivityResult()的
中设置了断点/日志以查看执行了哪些行?