android - Facebook 登录关闭我的 Activity

标签 android facebook authentication

我正在尝试将 Facebook 登录集成到我的 Android 应用程序中。 我正在使用 gradle 下载的最后一个 Facebook Sdk:

compile 'com.facebook.android:facebook-android-sdk:[4,5)'

这是我的代码:

public class SocialLogin extends Activity {

private static final String TAG = "SocialLogin";

CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_social_login);

    callbackManager = CallbackManager.Factory.create();

    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
    loginButton.setReadPermissions(Arrays.asList("email", "public_profile"));
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d(TAG, "onSuccess");
            Toast.makeText(getApplicationContext(), "Login attempt success.", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel() {
            Toast.makeText(getApplicationContext(), "Login attempt canceled.", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(FacebookException e) {
            Toast.makeText(getApplicationContext(), "Login Failed.", Toast.LENGTH_SHORT).show();
        }
    });
}

@Override
protected void onDestroy() {
    super.onDestroy();

    Log.d(TAG, "onDestroy");
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    Log.d(TAG, "onActivityResult");
    callbackManager.onActivityResult(requestCode, resultCode, data);
}
}

Facebook SDK 正确显示接受请求权限的 Activity ,但与此同时,有人调用了我的 Activity 的 onDestroy() 方法。这意味着当您接受所需的权限时应用程序已经关闭,并且永远不会调用 onActivityResult。 遗憾的是,logcat 没有显示任何有用的信息。

只要我重新启动我的应用程序并再次单击 Facebook 登录按钮,就会调用 onActivityResult 方法。 有什么建议吗?

最佳答案

我也遇到过这个问题。事实证明,这是我的错,因为我的 Activity 上有 noHistory 标志,所以 onActivityResult 永远不会被调用

关于android - Facebook 登录关闭我的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110317/

相关文章:

android - 在 Android 中退出应用程序

android - 在 Kotlin 中处理事件总线的通用监听器

java - 从 appengine 验证 UserService

iphone - iOS 应用程序登录流程

Android按下按钮时有两种声音

android - 另一个类中的错误 getResource()

c# - 获取 facebook 用户 token

facebook - 如何使用新的 Facebook PHP SDK 3.0.0 通过 OFFLINE_ACCESS 登录?

php - 如何使用 PHP SDK 在 Facebook 中进行重新身份验证?

sql-server - 如何从“连接到服务器”对话框中删除缓存的服务器名称?