Szenario:
Ich habe vier Aktivitäten in meiner Applikation für Android lässt, sagen A, B, C und D. Es gibt eine Constants.java
Klasse in der App, die Application
Klasse erstreckt, um globale Anwendungs Zustand zu halten. Die Konstantenklasse enthält alle Konstantenvariablen der App. Der Aktivitätsfluss ist wie folgt: A-->B-->C-->D
. Wenn die Zurück-Taste von Aktivität A gedrückt wird, rufe ich die Methode finish() auf, die die Aktivität A beendet und die Anwendung schließt. Wenn ich danach die App von allen Apps aus öffne, gibt es eine Variable in Constants.java
, deren Wert vom letzten Start an erhalten bleibt. Die gleiche Sache passiert nicht, wenn ich mache System.exit(10)
gefolgt von Process.killProcess(Process.myPid())
von Aktivität A (auf der Rückseite gedrückt).Was passiert, wenn alle Aktivitäten einer Anwendung abgeschlossen sind?
Fragen:
- Werden alle Aktivitäten Veredelung von finish() jeder Aktivität Aufruf wird die Anwendung (Sein Prozess) in der Nähe?
- Wie bleibt der Wert einer Variablen bestehen, selbst wenn alle Aktivitäten abgeschlossen sind (geschlossen)?
- Ist es fair,
System.exit(10)
gefolgt vonProcess.killProcess(Process.myPid())
zum Beenden der Anwendung aufzurufen?
Update:
Wie kann ich die Anwendung Konstanten beim Beenden der Anwendung (Zurück Drücken der HomeActivity) löschen?
Konstanten per Definition nicht ändern, also warum die Mühe, sie zu löschen? – m0skit0
Einfach: Rufen Sie 'System.exit()' nicht auf (wird überhaupt nicht empfohlen, wie in SO beschrieben). Löschen Sie einfach die Variablen, wenn HomeActivity beendet ist. –