No different from login systems as you found or as suggested. Assuming you have a BoasVindasActivity and a MainActivity (the latter defined as the primary in your manifest file), there is something like MainActivity :
SharedPreferences sharedPrefs = getApplicationContext().getSharedPreferences(NOME_PREFS, Context.MODE_PRIVATE);
if (!sharedPrefs.getBoolean("primeiroAcesso", false)) {
Intent intent = new Intent(this, BoasVindasActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
finish();
return;
}
That is, if you entered the main and do not have primeiroAcesso
saved in user preferences, you go to the welcome screen. Otherwise, in your BoasVindasActivity you save this option at some point to open the main:
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putBoolean("primeiroAcesso", true);
editor.commit();
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
The same check in the beginning you can also do in the BoasVindasActivity , to avoid opening this screen if it is already saved.