使用LoginButton监听Facebook注销。(4.1)

5
我一直在阅读,但尚未找到解决方案。所以我来了。
我正在尝试升级到Facebook的新SDK 4.1 Android SDK。 我可以使用以下代码成功地使用Facebook的LoginButton登录用户:facebookLogin.registerCallback(callbackManager,new FacebookCallback ()....)
一旦用户登录,我想知道用户何时使用相同的按钮进行登录。当用户登录时,登录按钮更改为“注销”。 我想知道的是,如何监听从LoginButton成功注销的操作? (我知道LoginManager.getInstance()。logOut();可以注销用户。但我要找的是一种回调方式,我可以据此进行处理。)
1个回答

17

引用Facebook SDK 升级Android SDK 4.0.1至4.1.0文档:“替换类-Session和UserSettingsFragment已被删除并由LoginManager和AccessToken类替换。LoginActivity被FacebookActivity所取代。”

因为我想模仿旧版Session的更改监听逻辑,所以我进一步研究了AccessTokenTracker。以下是我的解决方法。我仍然使用Facebook的LoginButton来登出用户,但我还包括这个来监听null令牌的更改。意思是用户已注销。

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

希望这篇文章对未来的读者有所帮助。


非常好,这个有效。我建议扩展Application类,以便对accessToken的更改会全局注销。 - tread
谢谢您先生。这真的很有帮助。 - Chris Palma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接