Im Wesentlichen habe ich eine runnable Wechsel zwischen zwei Aktivitäten. Ich habe einen Timer in onCreate runnable, der auf 0 Millisekunden in der Hauptaktivität gesetzt wird, die sofort auf den Startbildschirm umschaltet. Der Splash-Screen ist einfach ein Imageview, das dann nach 3000 Millisekunden mit einem ähnlichen Runnable wieder zurück schaltet.Wie vereinfache ich diesen Java-Begrüßungsbildschirm?
Meine Fragen ist das; kann ich den Code für die Hauptaktivität vereinfachen, und brauche ich wirklich die .postdelayed, wenn ich SplashScreen.activity sofort laden möchte?
Wenn die Verzögerung nicht notwendig ist, wie würde ich es richtig loswerden, damit die App sofort den Splashscreen lädt?
Die Haupttätigkeit:
/*
SPLASH SCREEN
*/
splashScreenRun = settings.getBoolean("splashScreenRun", splashScreenRun);
if (splashScreenRun == true) {
settings.edit().putBoolean("splashScreenRun", false).commit();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent splashIntent = new Intent(MainActivity.this, SplashActivity.class);
startActivity(splashIntent);
finish();
}
},0);
}
else {
settings.edit().putBoolean("splashScreenRun", true).commit();
}
//END
Und dann der Splashscreen:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
//splash screen
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
Intent splashEndIntent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(splashEndIntent);
finish();
}
},splashTimeout);
//end splash screen
können Sie onStart() dafür verwenden und es ist nicht notwendig, postdelayed zu verwenden. –