beginBackgroundTaskWithExpirationhandler n'est jamais appelé

J'ai une application qui lit les fichiers audio en arrière-plan. Je suis en train d'utiliser beginBackgroundTaskWithExpirationHandler pour passer à la piste suivante lorsque la piste en cours est terminé.

Voici le code qui est appelé lors de la lecture des changements d'état. Il ne se connecte jamais le "beginBG appelé" même si d'autres le code de la même méthode met en œuvre avec succès dans le fond.

UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    [self ffwButtonPressed:ffwButton];
    NSLog(@"beginBG called");
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}];

ffwButtonPressed appelle quelques méthodes différentes pour changer de piste. Quand il est complet...

UIApplication *app = [UIApplication sharedApplication];
    if (bgTask != UIBackgroundTaskInvalid) {
        [app endBackgroundTask:bgTask]; 
        bgTask = UIBackgroundTaskInvalid;
        NSLog(@"end bgTask");

Edit: Déclaration

UIBackgroundTaskIdentifier bgTask;

Edit: Dans Le ViewDidLoad

bgTask = 0;

OriginalL'auteur mnort9 | 2012-07-23