2017-04-13 103 views
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