Je déclenche une extraction en arrière-plan en utilisant l' content-availableindicateur sur une notification push. J'ai le fetchet remote-notification UIBackgroundModesactivé.
Voici l'implémentation que j'utilise dans mon AppDelegate.m:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Remote Notification Recieved");
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody =  @"Looks like i got a notification - fetch thingy";
    [application presentLocalNotificationNow:notification];
    completionHandler(UIBackgroundFetchResultNewData);
}Lorsque l'application s'exécute en arrière-plan, cela fonctionne bien. (La notification est reçue et l'application a déclenché la notification locale "On dirait que j'ai reçu une notification", comme le code ci-dessus devrait le faire).
Toutefois, lorsque l'application n'est pas en cours d'exécution et qu'une notification push est reçue avec l' content-availableindicateur, l'application n'est pas lancée et la didRecieveRemoteNotificationméthode déléguée n'est jamais appelée.
La vidéo WWDC Quoi de neuf avec le multitâche (# 204 de WWDC 2013) montre ceci:
Il indique que l'application est "lancée en arrière-plan" lorsqu'une notification push est reçue avec le content-availabledrapeau.
Pourquoi mon application ne se lance-t-elle pas en arrière-plan?
La vraie question est donc:
IOS effectuera-t-il des tâches en arrière-plan une fois que l'utilisateur aura forcé la fermeture de l'application?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
                


