我正在使用以下facebook-sdk版本:
com.facebook.android:facebook-android-sdk:4.+
我使用默认的脸书登录按钮作为登录视图
<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登录按钮无需点击即可重新登录!这只是连续循环!
我该怎么办?
您需要
向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 }