Frage

Meine Anwendung erzeugt einige temporäre Dateien, die ich während seines gesamten Lebenszyklus benötigen. Ich muss schließlich diese Dateien verfügen, so dass sie auf dem Gerät nehmen keinen Platz. Ich dachte, ich könnte sie löschen, wenn die Anwendung beendet wird, aber da das Multitasking der Lebenszyklus eingeführt wurde, ist nicht so einfach, wie es früher war. Meine Hauptfrage ist: Wenn meine Anwendung in den Hintergrund bewegt und später getötet wird, macht es applicationWillTerminate: erhalten? Oder ist es nur aus dem Speicher gelöscht?

Ich kann die Bereinigung tun, wenn die Anwendung bewegt sich in den Hintergrund, da es in der Mitte einer Operation backgrounded werden könnte und würde die temporären Dateien benötigen, sobald sie wieder auf den Vordergrund kommt. Ich glaube, ich könnte die Dateien beim Start reinigen, aber ich bin an dem applicationWillTerminate: Verhalten trotzdem.

War es hilfreich?

Lösung

Nein, applicationWillTerminate: nicht genannt auf Multi-Tasking fähigen iOS 4-Geräte. Wenn Ihre App wird in der Regel Mittel beendet, dass das Gerät von Speicher knapp wird, so dass selbst wenn ist haben aufgerufen kein sagt, dass Sie verfügbar genügend Speicher würde die Aufgabe doch noch zu bekommen.

Apple-empfehlen, dass Sie bereinigen, wenn Sie Ihre App in den Hintergrund geht. Sie können mehr Zeit bitten, dies zu tun, wenn Sie ein paar Sekunden benötigen (dies ist einer der wenigen Multi-Tasking-Szenarien für alle Anwendungen geöffnet).

Ihre andere Optionen wäre, aufzuräumen, wenn die Aufgabe beendet ist (wann auch immer das ist) oder wenn die Anwendung gestartet wird. Ich denke, es können auch andere Permutationen sein ...

Andere Tipps

Internet sagt, dass applicationWillTerminate: nicht genannt wird, während die Anwendung im Hintergrund getötet wird. Der andere Weg ist ein paar Informationen zu speichern (in NSUserDefaults oder so), die temporären Dateien, die Sie geöffnet und nach der Inbetriebnahme zu überprüfen, ob diese Dateien bleiben, und löschen. Außerdem können Sie erfahren, wie iOS tötet Ihre Anwendung (Ich gehe davon aus, dass dies durch das Senden von Signalen erfolgt, aber ich bin mir nicht sicher) und Signal-Handler, um Ihre Anwendung hinzuzufügen.

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