beginBackgroundTaskWithExpirationHandler

正常程序退出后,会在几秒内停止工作;

要想申请更长的时间,需要用到

beginBackgroundTaskWithExpirationHandler

endBackgroundTask

一定要成对出现

- (void)applicationDidEnterBackground:(UIApplication*)application 

{

UIApplication*application = [UIApplicationsharedApplication];

backgroundTask= [applicationbeginBackgroundTaskWithExpirationHandler:^{

[selfstopBackgroundTask];

}];

if(backgroundTask==UIBackgroundTaskInvalid)

{

[selfstopAllCamera];

return;

}

if(backgroundTaskTimer)

{

[backgroundTaskTimerinvalidate];

backgroundTaskTimer=NULL;

}

backgroundTaskTimer= [NSTimerscheduledTimerWithTimeInterval:30.0ftarget:selfselector:@selector(stopBackgroundTask)userInfo:NULLrepeats:NO];

}


-(void)stopBackgroundTask

{

if(backgroundTaskTimer)

{

[backgroundTaskTimerinvalidate];

backgroundTaskTimer=NULL;

}

UIApplication*application = [UIApplicationsharedApplication];

[applicationendBackgroundTask:backgroundTask];

backgroundTask=UIBackgroundTaskInvalid;

}


- (void)applicationWillEnterForeground:(UIApplication*)application

{

[selfstopBackgroundTask];

}

你可能感兴趣的:(beginBackgroundTaskWithExpirationHandler)