Frage

Ich habe eine eigene Anwendungsklasse erstellt.

Ich versuche es zu debuggen und der Code hält bei application.oncreate () an, hört aber nicht bei OnlowMemory auf.

Um das Szenario zu testen, öffne ich viele andere Anwendungen mit hohem Speicher.

Ich sehe, dass die Debug -Sitzung (in Eclipse) beendet wurde und einige meiner statischen Variablen in Null zugewandt wurden - zeigt, dass der Prozess beendet ist.

Das Debug hat nicht nur den Haltepunkt der Methode nicht gestoppt, sondern auch eine Log.e (...) -Linie und sehe sie auch nicht.

Irgendeine Idee, warum die Methode nicht aufgerufen wurde?

Vielen Dank.

War es hilfreich?

Lösung

Ich glaube nicht, dass es Garantien gibt, dass diese Methode jemals aufgerufen wird.

Von dem Dokumente:

Während der genaue Punkt, an dem dies aufgerufen wird, nicht definiert wird, wird es im Allgemeinen zu dem Zeitpunkt der Tötung des gesamten Hintergrundprozesses geschehen. Vor dem Erreichen des Punktes, mit dem die Hosting -Service und die Vordergrund -Benutzeroberfläche getötet werden, möchten wir das Töten vermeiden.

Da der Punkt, an dem es genannt wird, nicht definiert ist, könnte es sich dafür entscheiden, es niemals zu nennen.

Im Allgemeinen kann Android Ihre Bewerbung, wann immer sie will, töten, solange sie im Hintergrund ist. Sie sollten sich nur auf Methoden im Lebenszyklus verlassen (wie Onpause, OnStop, Ondestroy), die speziell angeben, dass sie garantiert aufgerufen werden, um eine notwendige Reinigung durchzuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top