2

Ich habe eine Login-Aktivität. Nach der Anmeldung wird die Hauptaktivität gestartet, die Fragmente für die Benutzernavigation verwendet. Ich möchte eine Schaltfläche in der Nav-Schublade meiner Haupttätigkeit, die die App vollständig schließen wirdAndroid vollständig zum Beenden einer App

Nun habe ich viele viele Threads zu diesem Thema gesehen und habe versucht, ihre Lösungen zu implementieren. Zum Beispiel:

I finishAffinity() in meiner Haupttätigkeit versucht habe, die die aktuelle Aktivität sowie alle übergeordneten Aktivitäten

ich versucht habe, mit finish() auf der Login-Aktivität, sobald ich bis um das Hauptaktivität schließen sollen und ruft dann finish() erneut auf, wenn der Benutzer auf die Schaltfläche klickt

Die höchste für diese Frage gewählte Antwort: Close application and remove from recent apps/, scheint auch nicht funktionieren. Erstens erfordert android:autoRemoveFromRecents="true" API> 21, aber selbst wenn ich die minimale SDK-Version auf 21 festgelegt, die App bleibt weiterhin in der Liste

Schließlich habe ich versucht, eine Absicht zu verwenden, wenn der Benutzer auf die Schaltfläche beenden klickt und die Navigation zurück zu der Login-Aktivität und zum Setzen von Flags mit einem Exit-Extra und zum Abschluss der Login-Aktivität (dh exit android application programmatically)

Keines dieser Systeme funktioniert. Sie schließen alle die Hauptaktivität und schließen möglicherweise sogar die Login-Aktivität. Wenn der Benutzer jedoch auf die App-Liste/Aktuelle Apps/App-Öffnen-Taste (bei den meisten Telefonen der eckige Softkey) klickt, ist die App dort immer noch sichtbar. Wenn die App in der Liste angeklickt wird, komme ich zurück zum Login-Aktivitätsbildschirm (ich bin mir nicht sicher, ob die App neu gestartet wird oder ob sie mich nur zum vorherigen Login-Bildschirm führt, der nicht geschlossen wurde)

aus Verzweiflung habe ich versucht, auch System.exit(0), die ich kenne, ist schlecht, aber auch das entbindet nicht von der App aus dem App-Liste

So, wie ich ganz programmatisch eine App beenden und entfernen Sie alle Spuren von es ist offen?

EDIT: Ich war zu hastig zu behaupten, eine der Antworten unten funktioniert nicht (siehe Kursiv oben). Die Antwort hat entfernen Sie die App richtig

+1

Sie sollten das nicht tun.Android speichert App-Prozesse so, dass sie so lange wie möglich im Speicher bleiben und wiederverwendet werden, wenn der Nutzer die App erneut verwenden möchte. App-Entwickler sollten dieses Verhalten erwarten. –

+1

Mögliches Duplikat von [Anwendung schließen und aus aktuellen Apps entfernen /] (http://stackoverflow.com/questions/22166282/close-application-and-remove-from-recent-apps). Siehe auch [App von den letzten Apps programmgesteuert entfernen] (https://stackoverflow.com/questions/13385289/remove-app-from-recent-apps-programmatically). – corsair992

Antwort

1

Ich denke, this is the solution Sie suchen.

Sie könnten erwägen, eine andere Aktivität namens ExitActivity zu haben, die aufgerufen wird, wenn Sie versuchen, Ihre Anwendung zu beenden. Der Trick dabei ist, dass die ExitActivityandroid:autoRemoveFromRecents auf true in der Datei manifest haben, so dass Ihre Instanz automatisch von den aktuellen gelöscht wird.

0

Auf der Grundlage meiner Forschung:

Es gibt keine Möglichkeit in android ganz um eine Anwendung zu erzwingen. Sie können nur eine Aktivität pausieren. Die Diskretion, eine App zu beenden, liegt vollständig bei Android Framework, das es bei der Überprüfung der Speicher- und Ressourcenauslastung von Apps tut. Ich konnte den offiziellen Link für jetzt nicht finden, aber ich hatte es früher gelesen.

0

verwalten Sie es durch das Betriebssystem. den Startbildschirm aufrufen.

Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

Verwandte Themen