onBackPressed()-Überschreibung
-
21-12-2019 - |
Frage
Dies ist der Aufbau meiner Bewerbung:
Aktivität A ist eine ListViewActivity
mit einer Taste zum Starten der B-Aktivität.
In der B-Aktivität gibt es nach dem Ausfüllen eines Formulars eine Schaltfläche zum Starten der C-Aktivität.
Die C-Aktivität speichert die Einstellung und erstellt einen neuen Datensatz, der in der A-Aktivität angezeigt wird.Die Schaltfläche „Speichern in C-Aktivität“ startet die A-Aktivität.
Wenn der Benutzer diesen Vorgang mehr als einmal ausführt, wenn er die Zurück-Taste von der A-Aktivität drückt, kehrt er zur B-Aktivität zurück (ohne durch die C-Aktivität zu gehen, denn als ich sie gestartet habe, habe ich eingestellt FLAG_ACTIVITY_NO_HISTORY
) und wenn er zum zweiten Mal „Zurück“ drückt, kehrt er wieder zu A zurück, und dies wiederholt sich so oft, wie es der Anzahl der erstellten Datensätze entspricht.
Das Schließen der App mit der Zurück-Taste war ein langer Prozess.
Ich möchte das onBackPressed
Von der A-Aktivität aus immer die App schließen.
Englisch ist nicht meine Sprache, ich hoffe, ich habe mich klar ausgedrückt.
Lösung
Beginnen Sie Ihre Aktivität A immer wie unten
Intent intent = new Intent(current_activity_context, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Andere Tipps
Das erledigt die Methodefinish().Etwas wie das
Intent intent = new Intent(getApplicationContext(),
Activity B.class);
Activity A.this.startActivity(intent);
finish();
Sie müssen die OnBackPressed-Methode überschreiben
@Override
public void OnBackPressed(){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
super.onBackPressed();//Optional
}
Ich hoffe es hilft.
Versuche dies
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}