Zuallererst: Ich bin ein absoluter Anfänger
Ich muss Code ausführen, wenn meine App beendet wird (ja, ich weiß so etwas in Android nicht) und das funktioniert für mich in Ordnung:
-Ich habe MyApplication, die die Anwendung erweitert. Als Mitglied von MyApplication gibt es ein AtomicInteger-Feld mit dem Namen activeActivitiesNumber und eine öffentliche Getter-Methode.
-Alle Anwendungsaktivitäten erweitern MyActivy (das selbst die Aktivität erweitert)
-MyActivity überschreibt die Methoden onCreate, onResume und onStop und verfügt außerdem über ein geschütztes Feld: Protected MyAppication mAppState;
a) OnCreate(){
super.onCreate();
mAppState=this.getApplication();...}
b) onResume(){
super.OnResume();
myAppState.getactiveActivitiesNumber().addAndGet(1)
....}
c) onStop(){
super.onStop()
if (myAppStatemyAppState.getactiveActivitiesNumber()..decrementAndGet()<1){
...call exiting code (for instance a public method defined in MyApplication}
}
Es gibt ein Problem: Wenn Sie eine Aktivität starten, die nicht zu Ihrer Anwendung gehört (z. B. eine E-Mail senden), wird die Beendigungsmethode ausgelöst.
Ein weiteres Problem (ich weiß nicht, ob es sich um ein echtes oder theoretisches Problem handelt) ist, dass es in einigen Situationen keine Garantie für die Bräune gibt. OnStop wird aufgerufen.
Ich hoffe das hilft.
ActivityoderService