首页 > 解决方案 > 为什么我的主要活动显示的比我的启动屏幕先显示

问题描述

这是带有初始屏幕代码的代码的第一部分

public class MainActivity extends AppCompatActivity {
    private static final int SPLASH_TIME_OUT = 1000;
    private static final String FILE_NAME = "example.txt";
    EditText mEditText;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mEditText = findViewById(R.id.edit_text);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                    Intent homeIntent = new Intent(MainActivity.this, HomeActivity.class);
                    startActivity(homeIntent);
                    finish();

            }
        },SPLASH_TIME_OUT);

运行应用程序后出现的第一件事是主要活动,而不是启动画面

标签: javaandroid

解决方案


您必须使用 Intent Filter 指定您的活动操作,Intent Filters 指定活动、服务或广播接收器可以响应的意图类型。意图过滤器声明其父组件的功能——活动或服务可以做什么以及接收器可以处理哪些类型的广播。它打开组件以接收广告类型的意图,同时过滤掉那些对组件没有意义的意图。

如在您的情况下,您必须指定 MainActivity/SplashActivity 应处于启动器模式(启动器模式是 Android OS 的指令,它指定应如何启动活动),您必须使用 Intent 过滤器并指定 Activity Actions ,

*必须通过这篇文章App Manifest Overview

<Application>将此添加到标签内的清单文件中

 <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

推荐阅读