以编程方式清除Android

时间:2016-07-10 12:36:53

标签: android facebook logout

我将Facebook登录集成到我的应用程序中,并且工作正常。问题在于注销。

当我在我的设备上打开Facebook应用程序时,我可以执行注销,以便下次打开它时,它会询问我如果我想使用我的常用帐户登录,使用其他帐户登录,甚至创建一个新账户。好,这是预期的。

但我的应用并没有发生这种情况。我的意思是,如果用户打开我的应用,点击"退出"以下代码已运行

// Initialize Facebook SDK on the beginning.
FacebookSdk.sdkInitialize(this.getApplicationContext());
...
// Logout on user choice.
LoginManager.getInstance().logOut();

下次他回到应用程序并点击登录时,他将直接使用他的帐户登录,他不会被问到他想要登录的每个帐户。

我想要清除所有已保存的信息(令牌?),这些信息正用于直接登录。它是否正确?如果是,我该怎么做?

谢谢,

2 个答案:

答案 0 :(得分:4)

我正在使用这种方法。它适用于SDK 4.6.0,但我想它应该与4.0相同。如果没有,只需升级;)

public void logoutFromFacebook(final LogoutFacebookListener listener) {

        if (AccessToken.getCurrentAccessToken() == null) {
            // already logged out
            listener.onLoggedOutFromFacebook();
            return;
        }

        new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
                .Callback() {

            @Override
            public void onCompleted(GraphResponse graphResponse) {

                LoginManager.getInstance().logOut();
                listener.onLoggedOutFromFacebook();
            }
        }).executeAsync();
    }

监听器:

public interface LogoutFromFacebookListener {

    void onLoggedOutFromFacebook();
}

答案 1 :(得分:2)

当您尝试登录时,它会像您的情况一样使用您的网络浏览器(Chrome等)。当你拨打FlsSetValue时,你只是从facebook sdk注销,但你仍然在你的网络浏览器中登录。 The Android and iOS SDKs don't currently support re-authentication.希望他们将来会出现;)