In einer bestimmten Android-Aktivität möchte ich irgendwann eine neue Aktivität für den Benutzer starten. Sobald sie die erste Aktivität verlassen und zur zweiten gelangen, ist die erste Aktivität veraltet und ich möchte sie vollständig entfernen, damit über die Schaltfläche "Zurück" nicht mehr darauf zugegriffen werden kann.
Wie ist der beste Weg, dies zu erreichen? Wie kann ich diese Aktivität sofort beenden oder zerstören, nachdem der Benutzer die neue Aktivität gestartet hat?
Antworten:
Sie müssen nur anrufen
finish()
quelle
onDestroy
ist eine Lebenszyklusmethode, die nur über das Android-Framework aufgerufen werden soll.Wenn Sie
android:noHistory="true"
die Aktivität in Ihrem Manifest festlegen, wird eine Aktivität vom Stapel entfernt, wenn von ihr weg navigiert wird. siehe hierquelle
Sie können verwenden:
quelle
Sie können
android:noHistory="true"
IhremActivity
Tag auch hinzufügenAndroidManifest.xml
.quelle
Ja, Sie müssen in jeder Aktivität, die Sie schließen möchten, nur finish () aufrufen.
quelle
Schreiben Sie dies in jede "neue Aktivität", nachdem Sie Ihre neue Absicht initialisiert haben->
quelle
Endlich habe ich eine Lösung!
Mein Kontext ist : - Ich möchte die Socket-Verbindung trennen, wenn die Aktivität zerstört wurde. Ich habe versucht, die Aktivität () zu beenden, aber es hat mir nicht funktioniert Verbindung bleibt irgendwo aktiv.
Also benutze ich es,
android.os.Process.killProcess(android.os.Process.myPid());
um meine Aktivität zu beenden undandroid:excludeFromRecents="true"
um sie aus der letzten Aktivität zu entfernen.quelle
android.os.Process.killProcess(android.os.Process.myPid())
beendet den App-Prozess und nicht nur die Aktivität. Dies bedeutet, dass alle laufenden Dienste (Hintergrund oder Vordergrund) ebenfalls gestoppt werden.Fügen Sie dieses Attribut Ihrer Aktivität in der Manifestdatei hinzu. android: noHistory = "wahr"
quelle
Sie müssen nur den folgenden Code verwenden, um die neue Aktivität zu starten.
quelle