Récupération d'arrière-plan iOS

Je suis un peu confus avec l'extraction d'arrière-plan. Je lis dans la documentation Apple Developer que fetch se produit quand OS décide qu'il devrait, l'user ne peut pas contrôler l'arrière-plan, alors que sur Apple Post écrit par l'employé Apple dit que si l'user tue l'application (appuyez deux fois sur la maison et le button glisser) fetch ne se produira pas, dans ce cas l'user peut contrôler l'extraction d'arrière-plan. Donc quelqu'un peut-il s'il vous plaît me préciser si l'user tue l'application avec le gestionnaire de tâches, l'arrière-plan ira-t-il toujours en arrière-plan ou il est tué en même time que l'application.

Documentation Apple:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH4-SW1

De la doc vous liez:

Lorsqu'une bonne opportunité se présente, le système se réveille ou lance votre application en arrière-plan et appelle l'application du délégué de l'application: performFetchWithCompletionHandler: méthode.

Donc, il semble que le système est capable de lancer en arrière-plan une application qui n'est pas en cours d'exécution afin qu'il exécute une extraction d'arrière-plan. D'un autre côté, cependant, plus loin dans le document, vous pouvez lire:

Dans la plupart des cas, le système ne relance pas les applications après qu'elles ont été forcées de quitter par l'user. Une exception concerne les applications de localization qui, dans iOS 8 et versions ultérieures, sont relancées après avoir été forcées de quitter par l'user. Dans d'autres cas, cependant, l'user doit lancer l'application explicitement ou redémarrer l'appareil avant que l'application puisse être lancée automatiquement en arrière-plan par le système.

Ainsi, l'ingénieur d'Apple a raison: la suppression forcée d'une application la place dans une sorte de cas particulier où les extractions en arrière-plan ne sont plus autorisées.

Si l'user ressent le besoin d'autoriser les opérations en arrière-plan, il ne tuerait pas l'application. Mais quand il le tue, il est seulement approprié d'interdire le fetch. L'user peut uniquement contrôler si l'extraction d'arrière-plan doit se produire ou non en lui permettant de restr en arrière-plan / en supprimant l'application. Mais une fois que l'application est en arrière-plan, l'user ne peut pas contrôler "quand" l'extraction d'arrière-plan se produit. Le operating system détermine en fonction de la façon dont il est gratuit.

Je pense que cette citation (du document lié) est la plus importante pour le scénario que vous décrivez:

Une fois configuré, votre object NSURLSession transmet de façon transparente les tâches de téléchargement et de téléchargement au système aux moments appropriés. Si les tâches se terminent alors que votre application est toujours en cours d'exécution (au premier plan ou en arrière-plan), l'object de session notifie son délégué de la manière habituelle. Si les tâches ne sont pas encore terminées et que le système met fin à votre application, le système continue automatiquement à gérer les tâches en arrière-plan. Si l'user met fin à votre application, le système annule toutes les tâches en attente.