Facebook Android SDK 注销监听器
Posted
技术标签:
【中文标题】Facebook Android SDK 注销监听器【英文标题】:Facebook Android SDK logout listener 【发布时间】:2013-05-22 05:33:27 【问题描述】:我在我的应用程序中使用 facbook sdk。当我通过 facebook sdk 登录我的应用程序时,一切正常,但是当我打开 Facebook 应用程序并从 Facebook 应用程序注销时,我的应用程序仍然登录。那么如何添加一个监听器来监听 Facebook SDK 的注销事件呢?
【问题讨论】:
你不能。不支持。 【参考方案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();
【讨论】:
以上是关于Facebook Android SDK 注销监听器的主要内容,如果未能解决你的问题,请参考以下文章
从我的应用程序中注销(使用 facebook android sdk 4.0 开发)并安装 facebook 原生应用程序
facebook android sdk 4.0,从 LoginManager 注销回调的方法