如何使用Facebook Android API v4检测注销事件?

如何使用Facebook Android API v4检测注销事件?,android,facebook,facebook-login,facebook-android-sdk,facebook-access-token,Android,Facebook,Facebook Login,Facebook Android Sdk,Facebook Access Token,我在这里发帖是因为我有问题。 我正在开发一个新的android应用程序,我想知道如何检测用户何时断开连接(facebook注销按钮),因为我现在想刷新我的UI 我已经查看了官方文档,但没有发现任何内容。您可以在活动的onCreate()方法上设置侦听器 AccessTokenTracker accessTokenTracker = new AccessTokenTracker() { @Override protected void onCurrentAccess

我在这里发帖是因为我有问题。 我正在开发一个新的android应用程序,我想知道如何检测用户何时断开连接(facebook注销按钮),因为我现在想刷新我的UI


我已经查看了官方文档,但没有发现任何内容。

您可以在活动的
onCreate()
方法上设置侦听器

AccessTokenTracker accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(
                AccessToken oldAccessToken,
                AccessToken currentAccessToken) {

            if (currentAccessToken == null){
                //User logged out
            }
        }
    };
您需要导入
com.facebook.AccessToken
com.facebook.AccessTokenTracker

创建AccessTokenTracker实例时,它隐式地开始跟踪。对于停止跟踪,您应该调用
AccessTokenTracker.stopTracking()
例如在
onDestroy()
中,以便在不需要/想要时不再接收事件,尤其是不泄漏内存

如果用户通过呼叫登录/注销,您可以获得任何时间

AccessToken at = AccessToken.getCurrentAccessToken();
如果用户未登录,则会得到一个
null

如需进一步参考,请查看位于

的文档。您也可以尝试此操作

 if(AccessToken.getCurrentAccessToken()!=null)
 {
   Log.v("User is login","YES");

 }
else
{
         Log.v("User is not login","OK");
      LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));
 }

它还可以导入调用
AccessTokenTracker.stopTracking()
例如在
onDestroy()
中停止接收事件,例如在已销毁的活动中!这并不能真正回答问题中基于事件的部分,因为您必须使用此代码进行投票。对于注销/登录回调,请使用@Nicolás Arias answer。