Android中如何选择起始文件?

How do you choose the starting file in Android?

***我看了另一个 post 关于这个但它对我不起作用。

我在 Android Studio 中有两个文件,我想让 StartActivity 在用户打开应用程序时显示。然而,MainActivity 来了。我没有看到我的代码有问题。我的 AndroidManifest.xml 在下面。提前致谢!如果需要更多信息,请告诉我。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.simplysnap">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"></activity>
        <activity android:name=".RegisterActivity" />
        <activity android:name=".LoginActivity" />
        <activity android:name=".StartActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我的启动活动文件:

package com.example.simplysnap;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class StartActivity extends AppCompatActivity {

    Button login, register;

    FirebaseUser firebaseUser;
    @Override
    protected void onStart() {
        super.onStart();

        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        //if user has no value then redirect
        if (firebaseUser != null){
            startActivity(new Intent(StartActivity.this, MainActivity.class));
            finish();
        }

    }

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

        login = findViewById(R.id.login);
        register = findViewById(R.id.register);

        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(StartActivity.this, LoginActivity.class));
            }
        });

        register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(StartActivity.this, RegisterActivity.class));
            }
        });
    }
}

我的主要活动文件:

package com.example.simplysnap;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

首先转到(Build->Clean Project)它将清理项目并删除所有临时文件。文件、Gradle 文件和生成的文件以及(Build->Rebuild Project)重建项目,它将重新生成 运行 应用程序所需的所有文件,然后尝试 运行

这将删除以前版本的应用程序并重新生成输出文件

//if user has no value then redirect
        if (firebaseUser != null){
            startActivity(new Intent(StartActivity.this, MainActivity.class));
            finish();
        }

如果您之前添加了一个 firebase 用户 运行 并且您可能卸载该应用程序并尝试再次安装该应用程序,则可能是重定向的位置它会占用以前的用户,因此您需要卸载该应用程序并重新启动设备,它将清除 firebase 用户