Was ist die Verwendung von UIApplicationDidEnterBackgroundNotification
in iPhone App oder wie können wir davon profitieren?
Diese Benachrichtigung bedeutet, dass der Benutzer Ihre App auf einem iPhone 4 "beendet". Dies geschieht, wenn ein Telefonanruf oder eine Textnachricht eingeht und der Benutzer die Unterbrechung (Antworten / Antworten) akzeptiert oder wenn der Benutzer die Home-Taste gedrückt hat.
Ich habe diesen Link auf SO gefunden, der die Interaktion zwischen allen Zuständen und die entsprechenden Benachrichtigungen anzeigt: Ссылка
Um diese Benachrichtigung zu verwenden, können Sie applicationDidEnterBackground wie von @Antwan vorgeschlagen implementieren (in Ihrer UIApplicationDelegate-Klasse - das ist die Hauptklasse).
Alternativ können Sie in Ihrem Code einen Benachrichtigungshandler einrichten, wo immer Sie möchten / brauchen:
%Vor%Viel Glück!
Oded.
Von Apple Dokumentation .
Sagt dem Delegaten, dass sich die Anwendung jetzt im Hintergrund befindet.
%Vor%Parameter Anwendung Die Singleton-Anwendungsinstanz.
Diskussion
In iOS 4.0 und höher wird diese Methode anstelle der applicationWillTerminate:
-Methode aufgerufen, wenn der Benutzer eine Anwendung beendet, die die Ausführung im Hintergrund unterstützt. Sie sollten diese Methode verwenden, um freigegebene Ressourcen freizugeben, Benutzerdaten zu speichern, Timer ungültig zu machen und genügend Anwendungsstatusinformationen zu speichern, um die Anwendung in ihrem aktuellen Zustand wiederherzustellen, falls sie später beendet wird. Sie sollten auch Aktualisierungen der Benutzeroberfläche Ihrer Anwendung deaktivieren und die Verwendung einiger Arten von gemeinsam genutzten Systemressourcen (z. B. die Kontaktdatenbank des Benutzers) vermeiden. Es ist auch unerlässlich, dass Sie OpenGL ES im Hintergrund vermeiden.
Ihre Implementierung dieser Methode dauert etwa fünf Sekunden, um Aufgaben auszuführen und zurückzukehren. Wenn Sie zusätzliche Zeit benötigen, um abschließende Aufgaben auszuführen, können Sie zusätzliche Ausführungszeit vom System anfordern, indem Sie beginBackgroundTaskWithExpirationHandler:
aufrufen. In der Praxis sollten Sie so schnell wie möglich von applicationDidEnterBackground:
zurückkehren. Wenn die Methode nicht vor Ablauf der Zeit zurückgegeben wird, wird die Anwendung beendet und aus dem Speicher gelöscht.
Sie sollten alle Aufgaben im Zusammenhang mit der Anpassung Ihrer Benutzerschnittstelle ausführen, bevor diese Methode beendet wird, aber andere Aufgaben (z. B. das Speichern des Status) sollten nach Bedarf in eine Warteschlange für gleichzeitigen Versand oder einen sekundären Thread verschoben werden. Da wahrscheinlich Hintergrundaufgaben, die Sie in applicationDidEnterBackground:
starten, erst ausgeführt werden, nachdem diese Methode beendet wurde, sollten Sie vor dem Starten dieser Aufgaben eine zusätzliche Ausführungszeit im Hintergrund anfordern. Mit anderen Worten, rufen Sie zuerst beginBackgroundTaskWithExpirationHandler:
auf und führen Sie dann die Task in einer Dispatch-Warteschlange oder einem sekundären Thread aus.
Die Anwendung sendet auch eine UIApplicationDidEnterBackgroundNotification
-Benachrichtigung zur selben Zeit, zu der sie diese Methode aufruft, um interessierten Objekten die Möglichkeit zu geben, auf den Übergang zu reagieren.
Tags und Links objective-c iphone uiapplication