2010-12-16 4 views
0

J'écris une application pour iOS 4 qui a besoin de jouer un son (ou vibrer) à des intervalles réguliers (spécifiés par l'utilisateur) en arrière-plan. Je ne souhaite pas utiliser les notifications locales car il n'est pas nécessaire d'afficher une alerte cliquable.Comment appeler une méthode à plusieurs reprises lorsque l'application iOS 4 est en arrière-plan?

Ce code (à partir de documents d'Apple) se déclenche lorsque mes changements d'applications à l'arrière-plan:

UIApplication *app = [UIApplication sharedApplication]; 

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
    [app endBackgroundTask:bgTask]; 
    bgTask = UIBackgroundTaskInvalid; 
}]; 

// Start the long-running task and return immediately. 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

    // Do the work associated with the task. 
    NSLog(@"I am now in the background"); 

    // Here I need something like this: 
    [self performSelector:@selector(myMethod) withObject:nil afterDelay:5.0]; 

    [app endBackgroundTask:bgTask]; 
    bgTask = UIBackgroundTaskInvalid; 
}); 

La ligne [self performSelector: ...] est exécuté lorsque l'application est mis à l'arrière-plan, mais la méthode myMethod n'est pas appelé jusqu'à ce que l'application est remise au premier plan (pas en 5 secondes, comme défini au paramètre afterDelay:). Alors, comment puis-je provoquer l'appel de la méthode alors que l'application est toujours en arrière-plan?

+0

Pourriez-vous nous le dire pendant combien de temps votre application restera en arrière-plan? J'ai lu que c'est 10 minutes maximum ... est-ce vrai ou faux? – Wasim

Répondre

0

Nevermind! La planification des notifications locales peut faire ce dont j'ai besoin.

Il est préférable d'utiliser les notifications locales avec UIApplication cancelAllLocalNotifications pour effacer les notifications existantes que l'utilisateur n'a pas ignorées. Parfait! De plus, l'utilisateur obtient l'avantage supplémentaire si un message contextuel leur permet de savoir à quoi sert le son (ou le vibreur).

Questions connexes