【问题标题】:Facebook Android SDK logout listenerFacebook Android SDK 注销监听器
【发布时间】:2013-05-22 05:33:27
【问题描述】:

我在我的应用程序中使用 facbook sdk。当我通过 facebook sdk 登录我的应用程序时,一切正常,但是当我打开 Facebook 应用程序并从 Facebook 应用程序注销时,我的应用程序仍然登录。那么如何添加一个监听器来监听 Facebook SDK 的注销事件呢?

【问题讨论】:

  • 你不能。不支持。

标签: android facebook logout


【解决方案1】:

这是一个老问题,但我想更新一个答案。

在 Facebook API 4.0 中(在撰写本文时为最新版本)您可以使用 AccessTokenTracker

    AccessTokenTracker accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(AccessToken accessToken, AccessToken accessToken2) {
            Log.d(TAG, "onCurrentAccessTokenChanged()");
            if (accessToken == null) {
                // Log in Logic
            } else if (accessToken2 == null) {
                // Log out logic
            }
        }
    };

【讨论】:

  • 赞成,但“登录逻辑”不起作用 - 注销很好。另请注意,文档说,如果您要使用跟踪器,则需要确保它使用“startTracking”和“stopTracking”,因为它们在内部使用接收器:developers.facebook.com/docs/facebook-login/android/v2.4
【解决方案2】:

我在Listen for Facebook logout with the LoginButton. (4.1)找到的最佳答案

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

【讨论】:

    【解决方案3】:

    您也可以尝试使用:

    LoginManager.getInstance().logOut();
    

    所以你可以打开你的应用,然后关闭它,然后再次打开它,看看它是否已注销:

    @Override
    public void onDestroy() {
        super.onDestroy();
        LoginManager.getInstance().logOut();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2019-08-01
      • 2011-10-22
      • 1970-01-01
      • 2015-01-12
      • 2014-04-04
      相关资源
      最近更新 更多