3

我使用下面的Facebook的SDK版本:Facebook的Android SDK中自动登录在

com.facebook.android:facebook-android-sdk:4.+ 

我使用默认的Facebook登录按钮登录视图

<com.facebook.login.widget.LoginButton 
    android:id="@+id/login_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="85dp" />` 

随着下面的Java代码

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList(permissions)); 
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
     //details intentionally hidden 
} 

但是为了注销,我使用了一个自定义按钮,其中点击我做以下

LoginManager.getInstance().logOut(); 
AccessToken.setCurrentAccessToken(null); 

但被点击在没有Facebook的登录按钮重新登录!这只是连续循环!

我该怎么办?

回答

2

您需要LoginButton所以按钮被点击时,只要求注册回调。

下面的代码使用方法:在OnCreate()

loginButton = (LoginButton) findViewById(R.id.login_button); 
List<String> permissionNeeds = Arrays.asList("public_profile", "email", "user_birthday", "user_friends"); 
loginButton.setReadPermissions(permissionNeeds); 

loginButton.registerCallback(callbackManager, 
     new FacebookCallback<LoginResult>() { 

     @Override 
      public void onSuccess(LoginResult loginResult) { and so on } 
+0

我用'LoginManager.getInstance()registerCallback',所以这并不作品? –

+0

并且怎么样退出? 'LoginManager.getInstance.logOut();'将工作? –

+0

'LoginManager.getInstance()。registerCallback' ...会工作,但我猜你是启动它在你的'的onCreate()'所以每次它被调用时......你需要调用它的按钮单击事件.. 。注销将起作用。 – rafsanahmad007