In meiner App habe ich eine Abmeldefunktion. Wenn der Benutzer auf Abmelden klickt, wird der Startbildschirm angezeigt. Jetzt beende ich meine App durch Drücken der Zurück-Taste. Aber was ich will ist, ich muss automatisch (d. H. Programmgesteuert) genauso wie die Zurück-Tasten-Funktion beenden. Ich weiß, dass ich durch Aufrufen von finish () die Funktionalität übernehmen werde. Aber die Sache ist, dass es zur vorherigen Tätigkeit geht.
onBackPressed()
wird unterstützt seit: API Level 5
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
onBackPressed();
}
}
@Override
public void onBackPressed() {
//this is only needed if you have specific things
//that you want to do when the user presses the back button.
/* your specific things...*/
super.onBackPressed();
}
Sie müssen onBackPressed()
nicht überschreiben. Sie ist bereits als Aktion definiert, die Ihre Aktivität standardmäßig ausführt, wenn der Benutzer die Zurück-Taste drückt. Rufen Sie also einfach onBackPressed()
auf, wenn Sie die Zurück-Taste "programmgesteuert" drücken möchten.
Das würde allerdings nur dazu führen, dass finish()
aufgerufen wird;)
Ich denke, Sie sind verwirrt mit dem, was die Rücktaste bewirkt. Standardmäßig ist dies nur ein Aufruf von finish()
, daher wird die aktuelle Aktivität einfach beendet. Wenn Sie etwas hinter dieser Aktivität haben, wird dieser Bildschirm angezeigt.
Wenn Sie Ihre Aktivität über das Login starten, fügen Sie ein CLEAR_TOP-Flag hinzu, damit die Login-Aktivität nicht vorhanden ist, wenn Sie Ihre Aktivität beenden.
Manchmal ist es hilfreich, die Methode onBackPressed () zu überschreiben, denn wenn Sie mit Fragmenten arbeiten und zwischen ihnen wechseln, wenn Sie die Zurück-Taste drücken, kehren sie zum vorherigen Fragment zurück.
Rufen Sie onBackPressed
auf, nachdem Sie es in Ihrer Aktivität überschrieben haben.
sie können einfach onBackPressed () verwenden.
oder wenn Sie fragment verwenden, können Sie getActivity () verwenden. onBackPressed ()
Fügen Sie einfach finish () hinzu; in Ihrer ersten Klasse '(Login-Aktivität) onPause (); Methode. das ist alles