Ich baue eine App mit einer Intro-Seite mit vielen Folien. Sobald ein Benutzer das erste Mal durch das Intro gegangen ist, wird er zu einem Anmeldebildschirm weitergeleitet. Sobald er sich angemeldet (oder registriert) hat, wird er auf die App-Homepage weitergeleitet. Solange der Benutzer sich nicht abmeldet, wenn er auf das App-Icon klickt, wird er direkt zum Home-Bildschirm weitergeleitet.Mit einer einzigen Absicht zu verschiedenen Intents wechseln (Was ist die beste Vorgehensweise?)
Ich benutze die Intro-Seite Absicht als die LAUNCHER-Aktivität und mit sharedpreference
, um 'erste Verwendung' und eingeloggte Zustände zu speichern. Durch Testen, ob sich der Benutzer angemeldet hat oder ein Erstbenutzer, leite ich ihn zu verschiedenen Absichten.
Also meine Frage ist, wo ist die am besten geeignete Position, um diese Absicht Umleitung zu haben? Da die Intro-Seite so viele Fragmente und Komponenten enthält, dass sie als LAUNCHER-Aktivität festgelegt wird und alle if else-Anweisungen dort stehen, wo der Benutzer hingehen soll, habe ich Systemressourcen verschwendet? Denn wenn sich der Benutzer bereits angemeldet hat, wird er auf die Startseite geleitet, ohne irgendwelche App-Intro-Sachen anzuzeigen, die geladen sind.
Oder ist es eine gute Vorgehensweise, eine leere Aktivität zu erstellen und diese als LAUNCHER-Aktivität festzulegen und alle if else-Anweisungen in diese zu schreiben. Die App muss also nicht auf die "schwere" App-Intro-Seite gehen.
PS: Ich habe diese Absicht Richtung erklärt, wenn sonst Anweisungen in der onCreate direkt nach super.onCreate();
@Override
protected void onCreate(Bundle savedInstanceState) {
// Fullscreen
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
// activity_first_usage is the container for all frames
setContentView(R.layout.activity_first_usage);
logger = new Logger(this);
if (!logger.isFirstUsage()) {
if (logger.hasTOKEN()) {
// If user didn't log out, then he can stay in the app
Intent home = new Intent(getApplicationContext(), Home.class);
startActivity(home);
finish();
} else {
// If this is not the first time user login in, no need to show the intro
Intent directToSignIn = new Intent(getApplicationContext(), SignIn.class);
startActivity(directToSignIn);
finish();
}
} else {
// If not, continue with the Intro and set usage status to used
logger.setFirstUsage(false);
}
...
}