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

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

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

用户登录后,我想知道用户何时使用相同的按钮登录。 当用户登录时,登录按钮会更改为“注销”。我想知道的是,如何从LoginButton中成功注销? (我知道LoginManager.getInstance().logOut();可以记录用户。但我正在寻找的是某种callBack,我可以相应地处理它。)

引用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."); } } }; 

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

也许为您的登录用户设置’currentUser’布尔变量,并根据登录按钮的onClickListener更改该变量:

 loginOrLogoutButton = (Button) findViewById(R.id.facebook_Login_Btn); loginOrLogoutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (currentUser == null) { //do something } else { //do something else }