AlamoFire Download im Hintergrund Sitzung
Ich bin mit Alamofire innerhalb einer neuen app (Download-Manager-Probe basiert auf Alamofire)
Ich brauche einige Klarstellungen zum herunterladen von Dateien mit dem hintergrund-Sitzung.
Ich überschreiben müssen SessionDelegate, um es zu bekommen funktioniert?
Oder einfach nur backgroundCompletionHandler
?
In der Regel, was sind die Schritte, die zu handhaben Sie downloads im hintergrund mit Alamofire?
Und wie kann ich den Fall behandeln, wo meine app relauch, mit downloads im Fluss.
Vielen Dank und Grüße.
Kommentar zu dem Problem
github.com/Alamofire/Alamofire, gehe zu Abschnitt Download Datei, und Alamofire requests sind asynchron
InformationsquelleAutor der Frage LastMove | 2015-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Basierend auf diese erstaunliche tutorial, ich habe ein Beispiel Projekt von GitHub. Er hat ein Beispiel für hintergrund-session-management.
Laut Apple ist URL-Loading-System Programming Guide:
Also offenbar durch die Verwendung der entsprechenden hintergrund-session-Instanzen der Konfiguration, der Download wird es nie sein "im Fluss".
Habe ich auch gefunden diese Antwort wirklich hilfreich.
Ursprüngliche Antwort
Von Alamofire ist GitHub-Seite:
Standardmäßig, top-level-Methoden verwenden eine gemeinsame
Manager
Instanz mit default session configuration. Sie können jedoch erstellen ein manager mit hintergrund-session-Konfiguration so:Können Sie dann Anfragen, die mit diesem
Manager
Instanz.Durch den Blick auf seine Umsetzung, es hat auch eine Eigenschaft namens
backgroundCompletionHandler
, so können Sie ein Abschluss-block:InformationsquelleAutor der Antwort József Vesza
Es ist tatsächlich sehr einfach mit Alamofire:
1) Ihre Alamofire.Manager sollten so konfiguriert werden, mit einem hintergrund session-id:
2) in der App-Delegate implementieren
application(_:handleEventsForBackgroundURLSession:completionHandler:
und bestehen der Abschluss-handler zuAlamofire.SessionManager.backgroundCompletionHandler
.In meinem Fall die app-delegate-Methode sieht wie
und mein Netzwerk-manager hat eine berechnete Eigenschaft, wie dies, um die Manager-Eigenschaft:
InformationsquelleAutor der Antwort Luca Torella
War ich auf der Suche für die Lösung Recht lange. Bis Lesen Sie den Artikel oben erwähnt. Das Problem für mich war - ich hatte zu aktivieren accessory Kommunikation
Alles andere war wie oben beschrieben.
AppDelegate:
Singleton:
Und die Anrufe erfolgen in der folgenden Weise:
InformationsquelleAutor der Antwort Naloiko Eugene