Ein Begrüßungsbildschirm sollte nur einmal erscheinen, wenn die App installiert ist.Splash-Screen, der mehr als einmal angezeigt wird
AndroidManifest
<activity android:name=".Splash"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Splash.java
public class Splash extends AppCompatActivity {
private static boolean splashLoaded = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!splashLoaded) {
setContentView(R.layout.splash);
int secondsDelayed = 5;
new Handler().postDelayed(new Runnable() {
public void run() {
startActivity(new Intent(Splash.this, MainActivity.class));
finish();
}
}, secondsDelayed * 500);
splashLoaded = true;
}
else {
Intent goToMainActivity = new Intent(Splash.this, MainActivity.class);
goToMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(goToMainActivity);
finish();
}
}
}
Aber Mine funktioniert nicht, auch nachdem ich android:noHistory="true"
setzen Gibt es etwas, was ich hinzufügen sollte?
, wenn Sie Ihre Anwendung ausführen können, dann wird jedes Mal Ihre splashLoaded Variable initialisiert das ist, warum jedes Mal, wenn Ihr splash Bildschirm ist Anzeige. Verwenden Sie share Preference, um Daten global zu speichern – Shailesh
Was genau möchten Sie tun, rufen Sie die Splash-Klasse erneut aus verschiedenen Klassen? –
Siehe meine Antwort unten für die Verwendung von gemeinsamen Einstellungen, um den Status der SplashLoaded-Variablen beizubehalten. – usajnf