Java 我不知道';I don’我不想在SplashScreen中按home键时让应用程序运行MainActivity,就像WhatsApp一样

Java 我不知道';I don’我不想在SplashScreen中按home键时让应用程序运行MainActivity,就像WhatsApp一样,java,android,splash-screen,Java,Android,Splash Screen,我在SplashScreen活动中启用了暂停,以覆盖Main活动,但它不起作用。 我在互联网上搜索过,但仍然没有找到方法。它总是启动MainActivity,即使我按下了home(主页)按钮 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash_screen)

我在SplashScreen活动中启用了暂停,以覆盖Main活动,但它不起作用。 我在互联网上搜索过,但仍然没有找到方法。它总是启动MainActivity,即使我按下了home(主页)按钮

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

    Thread splashScreenThread = new Thread() {
        @Override
        public void run() {
            try {
                sleep(2000);
                super.run();
            } catch (InterruptedException e) {
                Log.e(this.getClass().getSimpleName(), "showSplashScreen: " + e.getMessage());
            } finally {
                Intent moveToHomeActivityIntent = new Intent(SplashScreenActivity.this, HomeActivity.class);
                startActivity(moveToHomeActivityIntent);
                finish();
            }
        }
    };
    splashScreenThread.start();
}

@Override
protected void onPause(){
    super.onPause();
    finish();
}

请试着用这个

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            startActivity(new Intent(getApplicationContext(), HomeActivity.class));
            finish();
        }
    }, 2000);

只需转到Manifest.xml并将您的活动默认为SplashScreenActivity

更改此设置

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

到此

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

我找到答案了!它非常简单,易于实现。只需按照说明操作即可
感谢@Zun提供的参考资料

有些关联:你创建SplashScreen的方式真的很糟糕。请慢慢看。阅读本文后,您的问题将得到解决+您将有一个更好的启动屏幕+您将有更快乐的用户(我假设您关心您的用户)请使用以下代码只需更换您的线程并删除onPausemethod@Zun你的回答真的帮助了我,非常感谢!好的,我已经实现了这个,但是它仍然移动到MainActivity,尽管我已经在android homescreenokay上了,所以请检查HomeActivity,也许你已经将Home重定向到MainActivity。我已经找到了答案,只是参考了这个