因此,单击按钮,将弹出Facebook登录对话框。用户登录后,我想再转到另一个活动。问题是,当我完成Facebook工作并开始新活动时,该活动在登录过程完成之前就开始了。关于如何才能仅在登录过程完成后才能启动新活动的任何想法?谢谢。

login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Session s = new Session(MainActivity.this);
        Session.setActiveSession(s);
        Session.OpenRequest request = new Session.OpenRequest(
                MainActivity.this);
        request.setPermissions(Arrays.asList("public_profile", "email"));
        request.setCallback(new Session.StatusCallback() {
            // callback when session changes state
            @Override
            public void call(Session session, SessionState state,
                    Exception exception) {
                if (session.isOpened()) {
                        Request.newMeRequest(session,
                            new Request.GraphUserCallback() {
                                    @Override
                                    public void onCompleted(GraphUser user,
                                        Response response) {
                                    if (user != null) {

                                        userName = user.getName();
                                        userEmail = (String) user
                                                .getProperty("email");
                                        userID = user.getId();

                                    } else {
                                        Toast.makeText(
                                                getApplicationContext(),
                                                "Error User Null",
                                                Toast.LENGTH_SHORT)
                                                .show();                                                }
                                }
                            }).executeAsync();
                }
            }
        }); // end of call;
        s.openForRead(request);

        startActivity(new Intent(MainActivity.this, NextActivity.class));

    }
});

最佳答案

移动电话

startActivity(new Intent(MainActivity.this, NextActivity.class));


onCompleted块中的if (user != null)中。此时,MeRequest已完成,并且已成功返回用户。

07-27 18:15