Wenn der Benutzer alle offenen Aktivitäten beenden möchte Sie sollten eine Schaltfläche drücken, die die erste Aktivität lädt, die beim Starten Ihrer Anwendung ausgeführt wird, alle anderen Aktivitäten löschen und dann die letzte verbleibende Aktivität beenden lassen. Der folgende Code soll ausgeführt werden, wenn der Benutzer auf die Schaltfläche "Beenden" drückt. In meinem Fall, LoginActivity
ist die erste Aktivität in meinem Programm, die ausgeführt wird.
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Der obige Code löscht alle Aktivitäten mit Ausnahme von LoginActivity
. Dann fügen Sie den folgenden Code in die Datei LoginActivity
's onCreate(...)
zu hören, wenn LoginActivity
neu erstellt und das 'EXIT'-Signal übergeben wurde:
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Warum ist es so schwer, eine Exit-Taste in Android zu erstellen?
Android versucht hartnäckig, Sie davon abzuhalten, eine Schaltfläche zum Beenden" in Ihrer Anwendung zu haben, weil sie wollen, dass der Benutzer sich nie darum kümmert, ob die Programme, die er benutzt, im Hintergrund laufen oder nicht.
Die Entwickler des Android-Betriebssystems möchten, dass Ihr Programm ein unerwartetes Herunterfahren und Ausschalten des Telefons übersteht, und dass der Benutzer beim Neustart des Programms genau dort weitermacht, wo er aufgehört hat. So kann der Benutzer einen Anruf erhalten, während er Ihre Anwendung verwendet, und Karten öffnen, was erfordert, dass Ihre Anwendung für weitere Ressourcen freigegeben wird.
Wenn der Benutzer Ihre Anwendung wieder aufnimmt, macht er ohne Unterbrechung genau dort weiter, wo er aufgehört hat. Diese Beenden-Schaltfläche entzieht dem Aktivitätsmanager Energie, was zu Problemen mit dem automatisch verwalteten Android-Programmlebenszyklus führen kann.