AlamoFire Télécharger en arrière-plan de la Session
Je suis en utilisant Alamofire au sein d'une nouvelle application (Un Gestionnaire de Téléchargement de l'Échantillon basée sur Alamofire)
J'ai besoin de quelques précisions sur le téléchargement de fichiers à l'aide de l'arrière-plan de la session.
J'ai besoin de remplacer SessionDelegate pour obtenir que cela fonctionne?
Ou tout simplement backgroundCompletionHandler
?
Généralement, quelles sont les étapes pour gérer les téléchargements en arrière-plan à l'aide de Alamofire?
Et comment puis-je gérer le cas où mon application est relauch, avec des téléchargements de flux.
- github.com/Alamofire/Alamofire, allez à la section Téléchargement d'un Fichier, et Alamofire demandes sont asynchrones
Vous devez vous connecter pour publier un commentaire.
Mise à jour
Basé sur ce tutoriel étonnante, j'ai mis en place un exemple de projet disponible sur GitHub. Il a un exemple pour l'arrière-plan de gestion de session.
Selon Apple URL de Chargement Guide de Programmation Système:
Donc, apparemment, par les moyens appropriés de fond de la session de configuration des instances, de vos téléchargements ne seront jamais "dans le flux".
J'ai aussi trouvé cette réponse vraiment utile.
Réponse originale à cette question
De Alamofire de Page GitHub:
Par défaut, les méthodes de premier niveau utilisation partagée
Manager
instance par défaut de la configuration de la session. Vous pouvez cependant créer un gestionnaire de fond de la session de configuration comme suit:Vous pouvez ensuite faire des demandes à l'aide de cette
Manager
instance.En regardant sa mise en œuvre, il a également une propriété appelée
backgroundCompletionHandler
, de sorte que vous pouvez ajouter un achèvement bloc:C'est vraiment très facile avec Alamofire:
1) votre Alamofire.Le gestionnaire doit être configuré avec un arrière-plan identifiant de session:
2) dans l'Application Délégué mettre en œuvre
application(_:handleEventsForBackgroundURLSession:completionHandler:
et passer le gestionnaire d'achèvement deAlamofire.SessionManager.backgroundCompletionHandler
.Dans mon cas, le délégué d'application de la méthode ressemble à
et mon gestionnaire de réseau a une propriété calculée comme ceci pour définir le Gestionnaire de la propriété:
J'étais à la recherche de la solution assez longue. Jusqu'à la lecture de l'article mentionné ci-dessus. La question pour moi - j'ai dû activer accessoire Externe de communication
Tout le reste a été fait comme décrit ci-dessus.
AppDelegate:
Singleton:
Et les appels se font de la manière suivante: