2010-12-16 5 views
0

Achèvement de la tâche - les applications peuvent demander au système du temps supplémentaire pour effectuer une tâche donnée.Comment implémenter l'achèvement de la tâche

J'utilise cette méthode pour l'achèvement des tâches,

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    UIApplication *app = [UIApplication sharedApplication]; 
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^ 
    { 
     NSLog(@"This is Testing"); 

     [app endBackgroundTask:bgTask]; 

     bgTask=UIBackgroundTaskInvalid; 
    }]; 
} 

Mais je ne reçois pas de sortie de cette méthode. Quelqu'un me dit, ce que je fais mal.Pouvez-vous dire la meilleure méthode à mettre en œuvre pour l'achèvement de la tâche.

Cordialement,

Arunkumar.P

Répondre

1

Vous configurez un gestionnaire d'expiration, mais vous ne semblez pas faire quoi que ce soit en arrière-plan. Il semble que le code que vous avez ci-dessus est copié à partir de la section Executing Code in the Background du guide de programmation de l'application iOS. Le prochain morceau de code en ce que exxample est:

// 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. 

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

Le gestionnaire d'expiration ne sera pas appelée jusqu'à ce que la limite de temps (10 minutes, que je sache) est atteinte; vous effectuez le travail dans la tâche que vous distribuez de manière asynchrone, pas dans le gestionnaire d'expiration.

0

Cela a résolu mon problème: Easy Background Tasks In IOS 4.

L'idée principale est d'envoyer un code d'exécution asynchrone qui ne fait rien, mais permet à votre code actuel de continuer à fonctionner.

Espérons qu'il résout le vôtre aussi!

+0

Le lien est mort. C'est la raison pour laquelle vous devriez résumer le problème. S'il vous plaît modifier la réponse afin que nous puissions avoir l'essentiel de la solution. Cela rendra certainement cette réponse plus utile. –

Questions connexes