如何使用Facebook Android API v4检测退出事件?

out*_*ore 12 android facebook facebook-android-sdk facebook-login facebook-access-token

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

我一直在看官方文件,但我一无所获.

Nic*_*ias 28

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

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

            if (currentAccessToken == null){
                //User logged out
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

你需要导入com.facebook.AccessTokencom.facebook.AccessTokenTracker

当您创建AccessTokenTracker的实例时,它会隐式启动跟踪.对于停止跟踪,您应该调用AccessTokenTracker.stopTracking()例如在onDestroy()不需要/不需要时不再接收事件,尤其是不泄漏内存!

如果用户通过呼叫登录/退出,您可以随时获取

AccessToken at = AccessToken.getCurrentAccessToken();
Run Code Online (Sandbox Code Playgroud)

如果用户未登录,则会获得一个null值.

如需进一步参考,请查看https://developers.facebook.com/docs/reference/android/current/class/AccessTokenTracker/上的文档.


Ann*_*nny 8

 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")));
 }
Run Code Online (Sandbox Code Playgroud)