Wird didReceiveMemoryWarning nicht angezeigt, wenn sich die Anwendung im Hintergrund befindet

8

Ich merke, dass meine View-Controller ihre didReceiveMemoryWarning -Methoden nicht aufrufen, wenn sich meine Anwendung im Hintergrundstatus des iPad-Simulators befindet. Genauer gesagt sehe ich den Aufruf von applicationDidEnterBackground in meinen Protokollen, dann klicke ich auf die Schaltfläche "Speicherwarnung simulieren", und dann bemerke ich ein merkwürdiges Fehlen von didReceiveMemoryWarning -Aufrufen.

Wenn ich die Anwendung jedoch wieder in den Vordergrund bringe, erhalte ich plötzlich den Aufruf didReceiveMemoryWarning , als wäre er in die Warteschlange gestellt worden.

Was mich hier verwirrt, ist, ob meine Anwendung wirklich im Hintergrund ist, oder ob sie einfach nur unterbrochen ist. Gibt es eine Möglichkeit, im Simulator zu erzählen?

Wenn es noch nicht suspendiert ist und wirklich nur im Hintergrund ist, würde ich es albern finden, dass ich didReceiveMemoryWarning nicht verarbeiten kann. Denn das würde dann bedeuten, dass nur die Vordergrundanwendung Speicherwarnungen verarbeiten kann, um Speicherplatz freizugeben, was natürlich seltsam ist, da die Vordergrund-App nur eine von möglicherweise Dutzenden von laufenden Apps sein könnte, und es würde so viel mehr Sinn ergeben könnten alle Speicher freigeben.

Wie auch immer, die Hauptfragen sind: Warum bekomme ich didReceiveMemoryWarning im Hintergrundzustand nicht? Und bin ich wirklich suspendiert? Und wie kann ich es sagen?

    
patrick-rutkowski 20.05.2011, 22:12
quelle

2 Antworten

8

Wenn Sie keine Hintergrundaufgabe gestartet haben oder VOIP, Standortverfolgung oder Audio im Hintergrund ausführen, wird Ihre Anwendung nach applicationDidEnterBackground angehalten. Es wird keine Benachrichtigungen erhalten. Alle Benachrichtigungen werden beibehalten (auch solche, die nach dem Aussetzen der App auftreten) und an die App gesendet, wenn die App erneut in den Vordergrund wechselt.

    
Hollance 20.05.2011, 22:22
quelle
0

Ich denke nicht, dass das der Fall ist. Ich kann im Hintergrund auf didReceiveMemoryWarning -Code zugreifen. Sobald das System ein schwaches Speichersignal als ein guter Bürger erzeugt, sollten wir den Speicher freigeben. Dies hilft auch, dass unsere App vom System beendet wird.

    
Utsav Dusad 21.01.2016 12:26
quelle