使用LoginButton收听Facebook注销.(4.1)

joe*_*els 5 java android facebook

我一直在阅读,还没有找到解决方案.所以这里.

我正在尝试升级到Facebook的新SDK 4.1 Android SDK.我可以使用此代码使用Facebook的LoginButton成功登录用户:facebookLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>()....

一旦用户登录,我想知道用户何时使用相同的按钮进行登录.当用户登录时,登录按钮会更改为"注销".我想知道的是,如何从LoginButton中成功注销?(我知道LoginManager.getInstance().logOut();可以记录用户.但我正在寻找的是某种callBack,我可以据此处理.)

joe*_*els 16

引用Facebook SDK 将Android SDK从4.0.1升级到4.1.0文档:"替换类 - 会话和UserSettingsFragment已被删除并由LoginManager和AccessToken类替换.LogAActivity取代了LoginActivity."

因为我想模仿旧的Sessions改变了监听器逻辑,所以我进一步研究了AccessTokenTracker.这就是我解决问题的方法.我仍然使用Facebook的LoginButton来注销用户,但我也包含这个来监听对空令牌的更改.意味着用户已注销.

private AccessTokenTracker fbTracker;
    ...
    fbTracker = new AccessTokenTracker() {
                @Override
                protected void onCurrentAccessTokenChanged(AccessToken accessToken, AccessToken accessToken2) {
                    if (accessToken2 == null) {
                        Log.d("FB", "User Logged Out.");
                    }
                }
            };
Run Code Online (Sandbox Code Playgroud)

希望这有助于将来的其他人.