I am using NSURLSession to do downloads in the background. I create the NSURLSession instance when my app launches in UIApplicationDelegate:application:didFinishLaunchingWithOptions:, always with the same session ID. This means that when the OS launches my app into the background to handle completed background transfers, the NSURLSession object will always be recreated before calling UIApplicationDelegate:application:handleEventsForBackgroundURLSession:completionHandler:. Does the implementation of the app lifecycle and NSURLSession guarantee that NSURLSessionDelegate:URLSessionDidFinishEventsForBackgroundURLSession: can never be called before UIApplicationDelegate:application:handleEventsForBackgroundURLSession:completionHandler: given that the session is always recreated before calling UIApplicationDelegate:application:handleEventsForBackgroundURLSession:completionHandler:?
Thank you.