正常程序退出后,會在幾秒內(nèi)停止工作;
要想申請更長的時間,需要用到
beginBackgroundTaskWithExpirationHandler
endBackgroundTask
一定要成對出現(xiàn)
- (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];
}