0

Bevor Sie eine Frage stellen, lassen Sie mich klarstellen, was ich verstehe über iOS App heißt es:NSURLsession Hintergrundübertragungsdienst für Download-Aufgabe, kann es auch funktionieren, wenn die App gesperrt ist?


backgrounded: In diesem Zustand ist die App nicht mehr im Vordergrund, aber es ist Code ausführen noch in der Lage.

Angehalten: Ihre App wird in diesen Status versetzt, wenn sie nicht mehr in der Lage ist, Code auszuführen.

Jetzt wollte ich den Download fortsetzen, wenn App im Hintergrund ist, d.h. sie existiert immer noch im Multitasking-Bildschirm. Es funktioniert wie erwartet mit Hintergrundübertragungsdienst.

Aber in einigen Tutorial Referenz habe ich gelesen, dass Sie herunterladen können, auch wenn App Backgrounded/Suspended ist. Kann es auch funktionieren, wenn meine App gesperrt ist, d. H. Vom Multitasking-Bildschirm entfernt?

Ich habe viele Dokumente einschließlich Apple Klassenreferenz in Bezug auf Hintergrund-Transfer-Service mit Download-Aufgabe gelesen, aber niemand stellt klar, dass der Download nicht funktioniert, wenn App ausgesetzt ist (getötet).

Schätzen Sie Ihre Gedanken und Ratschläge !!!

Antwort

3

Wenn Ihre App vom System gesperrt wurde (ohne dass Sie den Multitasking-Bildschirm verlassen müssen), funktioniert Ihre Hintergrundsitzung weiterhin.

Wenn Sie die Anwendung beenden, werden alle Download-Aufgaben abgebrochen.

Das Folgende ist aus backgroundSessionConfigurationWithIdentifier (_ :) Dokumentation:

Wenn ein iOS-App vom System beendet und neu gestartet, kann die App die gleiche Kennung verwenden, um eine neue Konfigurationsobjekt und Sitzung zu erstellen und den Status der Übertragungen abrufen, die zum Zeitpunkt der Kündigung in Bearbeitung waren. Dieses Verhalten gilt nur für die normale Beendigung der App durch das System. Wenn der Benutzer die App vom Multitasking-Bildschirm aus beendet, bricht das System alle Hintergrundübertragungen der Sitzung ab. Darüber hinaus startet das System Apps, die vom Benutzer beendet wurden, nicht automatisch neu. Der Benutzer muss die App explizit neu starten, bevor die Übertragungen erneut beginnen können.

1

In der Multitasking-Benutzeroberfläche angezeigte Anwendungen führen nicht unbedingt Code aus oder rufen Daten ab. Gelistete Apps sind möglicherweise gesperrt oder laufen überhaupt nicht.

[[UIApplication sharedApplication] applicationState] überprüfen Sie Ihren Anwendungsstatus, können Sie Ihre App testen.

NSURLSession-Klasse kann Downloads und Uploads an das Betriebssystem übergeben, wenn die App inaktiv wird. Wie bei fast allen Hintergrundausführungs-APIs, wird der Hintergrundvorgang beendet, wenn der Benutzerzwang von der Multitasking-Benutzeroberfläche beendet wird

In iOS 7 hat Apple Unterstützung für den Hintergrundabruf hinzugefügt - eine Art intelligente, pro-App-crontab, die aufwacht zu opportunistischen Zeiten. Es gibt keine Möglichkeit, Hintergrundabrufe in exakten Intervallen auszuführen. iOS überprüft bei der Planung zukünftiger Rückrufe, wie viel Daten- und Akkuleistung bei früheren Hintergrundabrufen verwendet wurde.

Hintergrundabrufe können auch durch Remote-Push-Benachrichtigung ausgelöst werden und haben eine sehr ähnliche Delegate-Methode mit demselben Beendigungshandler.

Voll Tutorial ist hier

https://blog.newrelic.com/2016/01/13/ios9-background-execution/

Verwandte Themen