Android 在google api客户端连接后启动活动

Android 在google api客户端连接后启动活动,android,google-api,lifecycle,onactivityresult,Android,Google Api,Lifecycle,Onactivityresult,我有一个片段,用户点击G+API中的一个按钮,然后用他的Google服务帐户登录,到目前为止还不错 问题是,当点击按钮时,它应该在登录过程完成后启动一个活动,但它只在销毁活动时启动,可能会停止,我真的不知道并再次恢复它,因为如果我进入菜单并再次进入应用程序,第二个活动会立即启动或在更改方向时启动,它破坏并重新创建活动 我知道这与onActivityResult生命周期方法有关,因为我的应用程序也有facebook登录,我使用了facebook API中的uiHelper,我只是还没有为googl

我有一个片段,用户点击G+API中的一个按钮,然后用他的Google服务帐户登录,到目前为止还不错

问题是,当点击按钮时,它应该在登录过程完成后启动一个活动,但它只在销毁活动时启动,可能会停止,我真的不知道并再次恢复它,因为如果我进入菜单并再次进入应用程序,第二个活动会立即启动或在更改方向时启动,它破坏并重新创建活动

我知道这与onActivityResult生命周期方法有关,因为我的应用程序也有facebook登录,我使用了facebook API中的uiHelper,我只是还没有为google API客户端找到一个,我认为它实际上不存在

编辑:

这是我的on activity结果,如果我删除uiHelper.onActivityresult。。。然后我的facebook登录也会发生同样的情况

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);
}
这在用户登录时调用

@Override
public void onConnected(Bundle bundle) {
    mSignInClicked = false;
    // Get user's information
    getProfileInformation();
}
这是getProfileInformation,它填充了一个我用于我的应用程序的对象,这是一个简单的提醒应用程序

private void getProfileInformation(){
try {
        if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
            RemindersUser.IS_FB_USER =false;
            Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
            String personName = currentPerson.getDisplayName();
            String personPhotoUrl = currentPerson.getImage().getUrl();
            personPhotoUrl = personPhotoUrl.substring(0,personPhotoUrl.length() - 2)+ PROFILE_PIC_SIZE;
            String personGooglePlusId = currentPerson.getId();
            String email = Plus.AccountApi.getAccountName(mGoogleApiClient);
            mRemindersUser =new RemindersUser(
                    personName,
                    email,
                    personPhotoUrl,
                    personGooglePlusId);
            Intent viewPagerIntent = new Intent(getActivity().getApplicationContext(), ViewPagerActivity.class);
            viewPagerIntent.putExtra(RemindersUser.USERNAME, mRemindersUser.getName());
            viewPagerIntent.putExtra(RemindersUser.MAIL, mRemindersUser.getMail());
            viewPagerIntent.putExtra(RemindersUser.IMAGE, mRemindersUser.getImage());
            viewPagerIntent.putExtra(RemindersUser.USER_ID, mRemindersUser.getUserId());
            startActivity(viewPagerIntent);
        } else {
            Toast.makeText(getActivity(),"Person information is null", Toast.LENGTH_LONG).show();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
已解决:


我管理Google+连接的生命周期是错误的,比我应该做的要低一个抽象级别,我从活动开始管理连接,而不是从片段开始管理连接,一切都正常。

Done,我几乎完全通过片段完成我的应用程序,这就是为什么所有getActivity调用。