Facebook登录关闭我的活动

Mat*_*ana 3 android facebook login

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

compile 'com.facebook.android:facebook-android-sdk:[4,5)'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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);
}
}
Run Code Online (Sandbox Code Playgroud)

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

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

小智 6

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