Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GoogleAppClient为什么要启动不同的活动?_Android_Android Activity_Google Api Client - Fatal编程技术网

Android GoogleAppClient为什么要启动不同的活动?

Android GoogleAppClient为什么要启动不同的活动?,android,android-activity,google-api-client,Android,Android Activity,Google Api Client,我有以下代码,它是LoginActivity的一部分,而LoginActivity不是主活动或启动器活动。此活动从应用程序类开始 问题是,在我按下登录按钮后,我选择一个帐户的对话框弹出,我选择一个,按下OK按钮,然后调用我的onStop方法并显示主要活动。之后似乎没有调用其他方法(包括OnConnected) 这是否是GoogleAppClient的一个限制,我只能从主活动中使用它?我没有找到任何与此相关的信息,我尝试将活动更改为碎片活动,但运气不佳 @EActivity(R.layout.ac

我有以下代码,它是LoginActivity的一部分,而LoginActivity不是主活动或启动器活动。此活动从应用程序类开始

问题是,在我按下登录按钮后,我选择一个帐户的对话框弹出,我选择一个,按下OK按钮,然后调用我的onStop方法并显示主要活动。之后似乎没有调用其他方法(包括OnConnected)

这是否是GoogleAppClient的一个限制,我只能从主活动中使用它?我没有找到任何与此相关的信息,我尝试将活动更改为碎片活动,但运气不佳

@EActivity(R.layout.activity_login)
public class LoginActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

@App
MyApp app;

@ViewById(R.id.layout_login)
LinearLayout layoutLogin;

@ViewById(R.id.layout_loading)
RelativeLayout layoutLoading;

@ViewById(R.id.layout_error)
RelativeLayout layoutError;

private static final int RC_SIGN_IN = 0;

private GoogleApiClient mGoogleApiClient;

private boolean mIntentInProgress;
private boolean mSignInClicked;

private ConnectionResult mConnectionResult;

private void resolveSignInError() {
    if (mConnectionResult.hasResolution()) {
        try {
            mIntentInProgress = true;
            mConnectionResult.startResolutionForResult(this, RC_SIGN_IN);
        } catch (IntentSender.SendIntentException e) {
            mIntentInProgress = false;
            mGoogleApiClient.connect();
        }
    }
}

@Override
protected void onStart() {
    super.onStart();
    mGoogleApiClient.connect();
}

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

    if (mGoogleApiClient.isConnected()) {
        mGoogleApiClient.disconnect();
    }
}

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

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Plus.API)
            .addScope(Plus.SCOPE_PLUS_PROFILE)
            .build();
}

@Override
public void onConnected(Bundle bundle) {

    layoutLoading.setVisibility(View.VISIBLE);
    layoutLogin.setVisibility(View.GONE);

    mSignInClicked = false;

}

@Override
public void onConnectionSuspended(int cause) {
    mGoogleApiClient.connect();
}

@Override
public void onConnectionFailed(ConnectionResult result) {
    if (!mIntentInProgress) {
        mConnectionResult = result;

        if (mSignInClicked) {
            resolveSignInError();
        }
    }
}

@Override
protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
    if (requestCode == RC_SIGN_IN) {
        if (responseCode != RESULT_OK) {
            mSignInClicked = false;
        }

        mIntentInProgress = false;

        if (!mGoogleApiClient.isConnecting()) {
            mGoogleApiClient.connect();
        }
    }
}

@Click(R.id.button_sign_in)
public void signInButtonClicked() {
    if (!mGoogleApiClient.isConnecting()) {
        mSignInClicked = true;
        resolveSignInError();
    }
}

}

在AndroidManifest中设置此选项似乎会导致GoogleAppClient关闭它所在的活动(如果它不是主活动)

android:noHistory="true"