【发布时间】:2013-05-22 05:33:27
【问题描述】:
我在我的应用程序中使用 facbook sdk。当我通过 facebook sdk 登录我的应用程序时,一切正常,但是当我打开 Facebook 应用程序并从 Facebook 应用程序注销时,我的应用程序仍然登录。那么如何添加一个监听器来监听 Facebook SDK 的注销事件呢?
【问题讨论】:
-
你不能。不支持。
我在我的应用程序中使用 facbook sdk。当我通过 facebook sdk 登录我的应用程序时,一切正常,但是当我打开 Facebook 应用程序并从 Facebook 应用程序注销时,我的应用程序仍然登录。那么如何添加一个监听器来监听 Facebook SDK 的注销事件呢?
【问题讨论】:
这是一个老问题,但我想更新一个答案。
在 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
}
}
};
【讨论】:
我在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.");
}
}
};
【讨论】:
您也可以尝试使用:
LoginManager.getInstance().logOut();
所以你可以打开你的应用,然后关闭它,然后再次打开它,看看它是否已注销:
@Override
public void onDestroy() {
super.onDestroy();
LoginManager.getInstance().logOut();
}
【讨论】: