2017-09-20 2 views
0
protected void onCreate(Bundle savedInstanceState) { 
    //if user is already logged in open the profile activity directly 
    if (SharedPrefManager.getInstance(this).isLoggedIn()) { 
    finish(); 
    startActivity(new Intent(this, Home.class)); 
    } 
    buttonSignIn.setOnClickListener(this); 
    buttonSignUp.setOnClickListener(this); 
} 

Kann jemand mir bitte erklären, warum finish() vor dem Start der Home.class wird aufgerufen, wenn der Benutzer bereits angemeldet ist. Ich durch einige Quellcode gehen bin versucht, und nicht in der Lage, dies zu verstehen .kann nicht das Ziel Methode android verstehen

+4

Die Programmausführung wird nicht beendet, nachdem Sie finish() aufgerufen haben. Es bedeutet nur "beende diese Aktivität und starte dann die Home-Aktivität". –

+0

Okay, also erledigt Finish für startActivty() -Funktion? –

+0

Was passiert, wenn ich eine Zeile Code zwischen finish und startActivity habe? –

Antwort

0

Nach finish() können Sie keinen Kontext von der Aktivität abrufen.

Sie müssen Aktivität wie folgt beginnen:

if (SharedPrefManager.getInstance(this).isLoggedIn()) {    
     startActivity(new Intent(this, Home.class)); 
     finish(); 
    } 
+0

Also ist es eine bessere Idee, nach dem Start einer neuenAktivität zu beenden? –

+0

ja, es ist richtig – Raja

0

einfach, wenn Sie Finish() aufrufen; seine eher wie eine Absicht, die dies tun:

Intent intent = new Intent(whereYouareActivity.this , mainActivity.class}; 
startActivity(intent); 
0

wenn Sie eine Aktivität beenden, wird die Aktivität zerstört, aber nicht den Prozess. Dies ist ein wichtiger Aspekt der Android-Programmierung und wichtig zu verstehen, wie es sich von anderen Plattformen unterscheidet.

Und Sie können durch das Hinzufügen dieser Zeilen Ihre Tätigkeit beenden: -

if (SharedPrefManager.getInstance(this).isLoggedIn()) {    
     startActivity(new Intent(this, Home.class)); 
     finish(); 
    } 
0

von finish() ruft Sie aktiv Ihre aktuelle Aktivität schließen. Dies verhindert, dass Ihre Aktivität erneut angezeigt wird, wenn der Benutzer die Zurück-Taste drückt.

Verwandte Themen