You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何从SignupActivity跳转至LoginActivity时会直接进入HomeActivity?

解决从SignupActivity跳转LoginActivity时自动进入MainActivity的问题

当前代码在LoginActivity启动阶段直接检测FirebaseAuth的当前用户,而用户从SignupActivity跳转过来时,已经完成注册并处于登录状态,因此触发自动跳转逻辑,跳过了LoginActivity。以下是两种可行的解决方式:

方案一:通过Intent标记区分跳转来源

在SignupActivity跳转LoginActivity时,添加一个标记参数,告知LoginActivity当前是从注册页跳转而来:

Intent loginIntent = new Intent(SignupActivity.this, LoginActivity.class);
loginIntent.putExtra("FROM_SIGNUP", true);
startActivity(loginIntent);

修改LoginActivity中的判断逻辑,仅当不是从Signup跳转过来时,才执行自动登录跳转:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    boolean fromSignup = getIntent().getBooleanExtra("FROM_SIGNUP", false);
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    if (user != null && !fromSignup) {
        Intent i = new Intent(Login.this, MainActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(i);
    } else {
        if (user == null) {
            Log.d(TAG, "onAuthStateChanged:signed_out");
        }
        // 初始化登录界面控件、绑定事件等逻辑
    }
}

方案二:注册成功后直接跳转主界面(更符合常规用户流程)

用户完成注册后已处于登录状态,无需返回LoginActivity,直接跳转到MainActivity即可:

// SignupActivity中注册成功后的处理逻辑
FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, password)
    .addOnCompleteListener(this, task -> {
        if (task.isSuccessful()) {
            // 注册成功,直接进入主界面
            Intent mainIntent = new Intent(SignupActivity.this, MainActivity.class);
            mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(mainIntent);
            finish(); // 关闭SignupActivity,避免返回时回到注册页
        } else {
            // 处理注册失败逻辑
            Log.w(TAG, "createUserWithEmail:failure", task.getException());
            Toast.makeText(SignupActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
        }
    });

内容的提问来源于stack exchange,提问作者Okashi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:42:34