2016-07-29 8 views
0

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); 
      } 
... 
} 

Antwort

0

krank sagen Sie das Konzept

ein Spritzen verwenden und es verwenden, um einen Zustand des Benutzers Zustand zB überprüfen: bereits registriert, neu, registriert, aber noch nicht durch Intro weise ging wie

es identify

  • jetzt Sie preff
  • Mitbenützung können eine Datei schreiben
  • können einen Enum-Wert halten
  • oder von einem Server usw. erhalten ..

mehr: Sie können darüber nachdenken, was passiert, wenn der Benutzer die App deinstallieren und neu installieren it.Then, was Sie tun müssen, ? wie du willst.

einmal identifizieren Sie den Status des Benutzers in dem Splash die Schreib andere Absichten zu jedem von ihnen

wenn ein neuen - Last zu Ihrem Hauptmenü - Ihr Intro

wenn nicht angezeigt werden

Sie müssen entscheiden, weil du die Anforderung kennt

Hope this hilft ein wenig :)