2016-04-21 5 views
0

Weder meine Application Klasse noch meine MainActivity werden entsorgt, wenn ich die Zurück-Taste auf meinem Android-Handy klicke.Zurück Taste nicht App/MainActivity

Mein Problem:

ich kann nicht herausfinden, ob mein app vollständig geschlossen ist oder einfach nur eine Pause. In beiden Fällen

protected override void OnSleep() {} 

wird aufgerufen.

Aber sobald ich es wieder nach vorne erhalten, nachdem der Back-Taste, die MainActivity & Forms Application ist reinstantiated wieder und die ganze App neu zu starten erscheint. Während durch die Buttom mittlere Taste tippen, zu minimieren und dann nach vorne zu bringen wieder neu starten, tut die App und alles noch läuft und offen ...

Meine Frage:

Das Problem ist jetzt, dass Ich habe eine Anwendung und Aktivität im Speicher, die ich nicht mehr benutze. Es wird nie entsorgt, soweit ich das beurteilen kann.

Weitere Informationen Ich möchte nicht, dass die App neu gestartet wird, wenn ich auf die Zurück-Schaltfläche klicke. Wie kann ich dieses Problem lösen? Ich möchte, dass es sich genau so verhält, als hätte ich den Minimieren-Knopf in der Mitte benutzt. Ist das möglich?

Antwort

0

Von was ich sagen kann, ist dies von Entwurf. Wenn Sie sich auf der Hauptwebseite befinden und die Home-Taste drücken, wechselt die App in den Hintergrund, aber die Hauptseite wird weiterhin instanziiert und gespeichert. Wenn Sie dagegen auf die Zurück-Schaltfläche klicken, entfernt die App die Hauptseite vom Navigationsstapel und zerstört sie somit. Daher muss die App Ihre MainPage (NavigationPage) neu initialisieren, um zu funktionieren.

+0

Aber warum sind meine Application-Klasse und meine MainActivity initialisiert, während beide alte Klassen noch im Speicher gehalten werden? Ich habe einen EventAggregator, der eine Methode für die Application-Klasse abonniert hat und zweimal (oder öfter) aufgerufen wird, wenn ich die App erneut drücke und maximiere. Ich erwarte, dass es beide alten Klassen atleast ablegt und den Destruktor aufruft, damit ich es von meinem EventAggregator abbestellen kann. – Jannik