2016-08-02 91 views
2

Ich habe zwei Aktivitäten. Eine Aktivität ist die Autorisierungsaktivität und die andere Navigationsschublade mit Fragmenten. Wenn ich den Weg der Registrierung gehe und auf die Navigation stoße, sollte ich nicht mit dem System-Zurück-Button zur Login-Aktivität kommen.Wie verhindern Sie den Übergang zur Aktivität

Wie kann ich diesen Übergang blockieren, wenn mein System Tasten beschäftigt:

@Override 
public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     super.onBackPressed(); 
    } 
} 
+0

Er sucht ** genau ** das Gegenteil tun :) Sie können 'finish()' in der Autorisierung Aktivität aufrufen und es wird zerstört, dann drücken Sie zurück wird die App verlassen. – Vucko

Antwort

2

nicht sicher, ob ich das richtig verstanden, aber wenn Sie nicht Ihre Anwendung zurück Aktivität einzuloggen kommen wollen, sollten Sie es beenden, nachdem Starten Sie Ihre Navigationsaktivität.

void onAuthorized() { 
    Intent intent = new Intent(this, NavigationActivity.class); 
    startActivity(intent); 
    finish(); 
} 
0

In Ihrem LoginActivity XML-Beschreibung in manifest, fügen:

android:noHistory="true" 

Wie @ Alex unten in den Kommentaren erwähnt, wird dieses Flag nicht funktionieren, wenn Sie startActivityForResult() verwenden sind.

+0

Vorsicht mit dieser Flagge. Wenn Ihre Login-Aktivität einige andere Aktivitäten für das Ergebnis aufruft, wird dieses Flag es brechen –

+0

Natürlich. Wie auch immer, ich werde diese Informationen in der Bearbeitung hinzufügen. Vielen Dank! – Shaishav