iPhone容许在后台运行10分钟时间 这样你在后台可以做一些事情

iPhone允许在后台运行10分钟时间 这样你在后台可以做一些事情
UIBackgroundTaskIdentifier _bgTask;

- (void)applicationDidEnterBackground:(UIApplication *)application 

    UIDevice* device = [UIDevice currentDevice]; 
   
    BOOL backgroundSupported = NO; 
   
    if ([device respondsToSelector:@selector(isMultitaskingSupported)]) 
    {    
        backgroundSupported = device.multitaskingSupported; 
    } 
    if (backgroundSupported && _bgTask==UIBackgroundTaskInvalid && [self needBackgroundRunning]) 
    { 
        UIApplication*    app = [UIApplication sharedApplication]; 
       
        _bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
            NSLog(@"background task %d ExpirationHandler fired remaining time %d.",_bgTask, (int)app.backgroundTimeRemaining);
           
            NSLog(@"aaa");
        }];  
        // 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(@"background task %d start time %d.", _bgTask, (int)[app backgroundTimeRemaining]); 
           
            
           
            while (app.applicationState==UIApplicationStateBackground && _bgTask!=UIBackgroundTaskInvalid && [self needBackgroundRunning] && [app backgroundTimeRemaining] > 10)  
            { 
                [NSThread sleepForTimeInterval:1]; 
            NSLog(@"background task %d left left  time %d.", _bgTask, (int)[app backgroundTimeRemaining]); 
               
                [self test];
               
                //[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(test) userInfo:nil repeats:YES];
            } 
           
            NSLog(@"background task %d finished.", _bgTask);     
            [app endBackgroundTask:_bgTask]; 
            _bgTask = UIBackgroundTaskInvalid;   
           
           
        });      
    } 
   
    NSLog(@"!Enter Background"); 
   


- (void) test
{
    NSLog(@"sssssssssss");
}