2017-05-28 1 views
2

Ich habe versucht, meinen Code in die applicationWillTerminate Funktion des App-Delegierten, aber bemerkte, dass es nicht aufgerufen wurde, wenn ich die App geschlossen und dann gelesen und herausgefunden applicationWillTerminate wird nicht konsequent auf app schließen aufgerufen. Was zum Teufel?Gibt es eine Möglichkeit, die Ausführung von Code zu garantieren, wenn eine iOS App geschlossen wird?

Gibt es eine Möglichkeit, Code beim Schließen der App konsistent auszuführen? Es scheint wie eine einfache Anforderung und es ist wichtig für mein Projekt, so hoffe ich, dass dies möglich ist.

+0

Verwenden Sie "stille Push-Benachrichtigungen", wenn Sie eine Hintergrundaufgabe ausführen möchten, wenn die App nicht ausgeführt wird. – pkc456

+0

Führen Sie Ihren Code aus, wenn Ihre App in den Hintergrund tritt. – rmaddy

Antwort

2

applicationWillTerminate wird normalerweise nicht aufgerufen. Sie erhalten eine Nachricht, wenn Ihre App gesperrt wird. Sobald dies der Fall ist, können Sie ohne weitere Warnung beendet werden. Sie sollten ein Suspend-Ereignis als mögliche Beendigung behandeln und alles speichern, was Sie speichern müssen.

Wie ich mich erinnere, ist es möglich, über UNIX SIGTERM Nachrichten benachrichtigt werden, aber ich bin nicht positiv.

+0

danke! Wie kann ich diese Nachricht antippen/bearbeiten, die gesendet wird, wenn die App kurzzeitig gesperrt wird? –

+0

Es sieht so aus, als ob ich mich falsch erinnert habe und die Nachricht, die an Ihren App-Delegaten gesendet wird, lautet 'applicationDidEnterBackground (_ :)'. Wenn Sie auf die Hintergrundbenachrichtigung an einer anderen Stelle als Ihrem Anwendungsdelegaten antworten möchten, können Sie sich auch für die Benachrichtigung "UIApplicationDidEnterBackground" registrieren. –

Verwandte Themen