beginBackgroundTaskWithExpirationHandler

Viewed 23480

I am making an application where audio will play in the background. In the following code, bgTask is undeclared. What kind of object should bgTask be?

- (void)applicationDidEnterBackground:(UIApplication *)application 
{
    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
        [app endBackgroundTask:bgTask]; 
        bgTask = UIBackgroundTaskInvalid;
    }];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{});

    [app endBackgroundTask:bgTask]; 
    bgTask = UIBackgroundTaskInvalid;
}
3 Answers

You are using the bgTask in the block so you have to declare it like this..

__block UIBackgroundTaskIdentifier bgTask = 0;

__block will allow this variable to use in the block method. And its have double underscore.

Related