来自 Fragment 的 Google Sign-In 未返回到应用程序

Google Sign-In from Fragment is not returned to the app

问题是 Fragment 中的 Google Sign-In 关闭了应用程序并且从不调用 onActivityResult Fragment 或 parent Activity。当我从片段中以 described in example 启动 signInIntent 时,应用程序关闭并出现 Sign-In 对话框。我可以选择一个帐户 Sign-In,但之后我只能看到我的桌面而不是我的应用程序。

Sign-In API 使用我配置的客户端 parent Activity:

        googleApiClient = new GoogleApiClient.Builder(activity)
            .enableAutoManage(activity /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .addConnectionCallbacks(this)
            .build();

添加:片段 parent Activity 未启动 activity。在我的启动 activity 中,我执行 Facebook sign-in 操作,并在用户已经签名的情况下立即 finish 它。问题能出在这个地方吗?

onActivityResult 在你 activity 中被调用,在你的 activity

中添加这样的东西
 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.container);
    fragment.onActivityResult(requestCode, resultCode, data);
}

并覆盖片段中的 onActivityResult

问题出在 Intent.FLAG_ACTIVITY_NO_HISTORY 用于从登录 Activity 启动第二个 Activity(Fragment 的父级)。此外,您可以从 Fragment 调用 signInIntent 并在那里获得 onActivityResult(您不需要从 Activity 调用此意图)。