为什么我没有在 Facebook 的下一个活动中获得注销按钮 与 sdk 4.0.1 集成



我使用 Facebook Sdk 4.0.1 成功登录并转到第二个活动,即注销活动,我单击注销按钮并再次重定向到主要活动,但实际上我再次到达那里注销按钮,这是我的登录按钮,它更改为 Facebook SDK 注销。所以请告诉我我怎么了。请告诉我如何在下一个活动中获得注销按钮

public class  MainActivity extends FragmentActivity{
    LoginButton loginButton;
    FacebookSdk mFacebook;
    private static final String[] PERMISSIONS = new String[] {"public_profile", "user_photos", "read_stream", "email" };
    CallbackManager callbackManager;
    SharedPreferences preferences;
    String userName, emailId, userFacebookId, userId;
    URL image_value;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        setContentView(R.layout.activity_main);
        System.out.println("Inside onCreate  ");
        preferences = getSharedPreferences("MyData", Context.MODE_WORLD_WRITEABLE);
        loginButton = (LoginButton) findViewById(R.id.login_button);
        loginButton.setReadPermissions(PERMISSIONS);
        // If using in a fragment
//        loginButton.setFragment();
        // Callback registration
        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        SharedPreferences.Editor editor = preferences.edit();
                        editor.putString("accessToken", loginResult.getAccessToken().toString());
                        editor.apply();
                        GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) {
                                try {
                                    System.out.println("Inside onSuccess  ");
                                    userFacebookId = graphResponse.getJSONObject().getString("id");
                                    userName = graphResponse.getJSONObject().getString("name");
                                    emailId = graphResponse.getJSONObject().getString("email");
                                    userId = graphResponse.getJSONObject().getString("link");
                                    try {
                                        image_value = new URL("http://graph.facebook.com/" + userFacebookId + "/picture?type=large");
                                    } catch (MalformedURLException e) {
                                        e.printStackTrace();
                                    }
                                    SharedPreferences.Editor editor = preferences.edit();
                                    editor.putString("userFacebookId", userFacebookId);
                                    editor.putString("userName", userName);
                                    editor.putString("emailId", emailId);
                                    editor.putString("userId", userId);
                                    editor.putString("image_value", image_value.toString());
                                    editor.apply();
                                    Intent intent = new Intent(MainActivity.this, logOut.class);
                                    startActivity(intent);
                                } catch (org.json.JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        });
                        request.executeAsync();
                    }
                    @Override
                    public void onCancel() {
                        System.out.println("Inside onCancel  ");
                        // App code
                    }
                    @Override
                    public void onError(FacebookException exception) {
                        System.out.println("Inside Error  " + exception);
                        // App code
                    }
                });
    }
    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
        System.out.println("Inside onActivityResult  "+resultCode);
    }
}

在第二个活动注销方法中,使用以下行要求LoginManager注销为

LoginManager.getInstance().logOut();

因此,它将在您的主要活动中的Facebook登录按钮上显示"登录"文本。

最新更新