我不希望该应用程序像在WhatsApp上一样在SplashScreen中按下主页时运行MainActivity

问题描述 投票:-1回答:3

我已经在SplashScreen活动中添加了onPause来覆盖MainActivity,但是它不起作用。而且我已经搜索了互联网,但仍然找不到该怎么做的方法。即使我按下主页按钮,它也总是启动MainActivity

@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();
}
java android splash-screen
3个回答
0
投票

请尝试使用此方法将起作用

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

0
投票

只需转到您的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" />

0
投票

我已经找到答案了!它是如此简单且易于实现。只需遵循此link上的说明感谢@Zun提供参考

© www.soinside.com 2019 - 2024. All rights reserved.