如何在android上登录facebook

如何在android上登录facebook,android,facebook,user-interface,Android,Facebook,User Interface,我已经尝试了教程,我能够成功登录。此代码提供了一个用于登录的对话框。但我想把它作为一项活动。因为我也必须从这个活动中执行其他任务。比如在成功登录后新活动开始时,在facebook的前一个状态下再次返回到上一个(facebook)活动。请帮帮我。 谢谢该对话框仅为用户登录Facebook而创建。一旦他们这样做了,它将返回到原来的活动。这就是你想要的,对吗 假设你想在facebook上发布一条消息 try { Log.d(TAG, "postToFaceBook()");

我已经尝试了教程,我能够成功登录。此代码提供了一个用于登录的对话框。但我想把它作为一项活动。因为我也必须从这个活动中执行其他任务。比如在成功登录后新活动开始时,在facebook的前一个状态下再次返回到上一个(facebook)活动。请帮帮我。
谢谢

该对话框仅为用户登录Facebook而创建。一旦他们这样做了,它将返回到原来的活动。这就是你想要的,对吗

假设你想在facebook上发布一条消息

try {
        Log.d(TAG, "postToFaceBook()");
        if (facebook == null) {
            facebook = new Facebook(API);
            String access_token = prefs.getFBAccesTocken();

            long expires = prefs.getFBExpiry();
            if (access_token != null) {
                facebook.setAccessToken(access_token);
            }
            if (expires != 0) {
                facebook.setAccessExpires(expires);
            }
        }

        if (facebook.isSessionValid()) {
            Log.d(TAG, "Session is valid");
            facebook.extendAccessTokenIfNeeded(this, null);
            postToFacebook();
        } else {
            Log.d(TAG, "not valid");
            // Using SSO OAuth
            // facebook.authorize(this, new String[] { "publish_stream"
            // },new LoginDialogListener());

            // Not using SSO
            facebook.authorize(this, new String[] { "publish_stream" },
                    Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener());
        }
    } catch (NullPointerException e) {
        Log.e(TAG, "An error occurd trying to open facebook app");
如果用户过去登录过facebook,并且有一个有效的会话,那么它将直接发布到facebook。如果没有有效的会话,它将打开对话框并尝试登录

LoginDialogListener()响应此消息的响应

public class LoginDialogListener extends BaseDialogListener {

    @Override
    public void onComplete(Bundle values) {
        Log.d(TAG, "Login response recieved");
        prefs.saveToken(facebook.getAccessToken());
        prefs.saveExpiry(facebook.getAccessExpires());
        facebook.extendAccessTokenIfNeeded(MyActivity.this, null);
        Log.d(TAG, "Logged in ");
        postToFacebook();
    }

}

另一个选择是使用SSO(我在示例代码中已经注释掉了它)。

谢谢Danwms,事实上我对android还不熟悉。在哪里使用此代码??在未完成的方法中???facebook的登录对话框。我已经在onCompleted方法中使用intent启动了新的活动,当我单击back按钮时,我想转到facebook对话框进行注销和其他用途,而不是主活动。