I have a splash screen activity, then a login activity. My history stack looks like:
SplashActivity LoginActivity
when the user successfull
finish() removes the activity from the stack. So, if you start LoginActivity and call finish() on SplashActivity, and then you do exact the same to start WelcomeActivity you will get the desired behaviour. No need to use extra flags.
finish()